资源简介
mina2 cs 客户端服务器通信 已经实现完整通信代码

代码片段和文件信息
package com.minaqq.charset;
import java.nio.ByteOrder;
import java.nio.charset.Charset;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.CumulativeProtocolDecoder;
import org.apache.mina.filter.codec.ProtocolDecoderOutput;
import com.minaqq.domain.MsgPack;
/**
* @see 协议解码
* @author Herman.Xiong
* @date 2014年6月11日 16:47:24
*/
public class MsgProtocolDecoder extends CumulativeProtocolDecoder {
private Charset charset=null;
public MsgProtocolDecoder() {
this(Charset.defaultCharset());
}
public MsgProtocolDecoder(Charset charset) {
this.charset = charset;
}
/*public void decode1(IoSession is IoBuffer buf ProtocolDecoderOutput out)
throws Exception {
buf.order(ByteOrder.LITTLE_ENDIAN);
MsgPack mp=new MsgPack();
//获取消息的内容长度
mp.setMsgLength(buf.getInt());
//获取消息的功能函数
mp.setMsgMethod(buf.getInt());
byte[] msg=new byte[mp.getMsgLength()];
buf.get(msg);
mp.setMsgPack(new String(msgcharset));
buf.flip();
out.write(mp);
}
*/
public void dispose(IoSession arg0) throws Exception {
}
public void finishDecode(IoSession arg0 ProtocolDecoderOutput arg1)
throws Exception {
}
protected boolean doDecode(IoSession session IoBuffer ioBuffer ProtocolDecoderOutput out) throws Exception {
ioBuffer.order(ByteOrder.LITTLE_ENDIAN);
//接收到的数据一点一点的存进缓冲区,
//ioBuffer.capacity的容量是根据接收的数据自动增长的
MsgPack mp = (MsgPack) session.getAttribute(“nac-msg-pack“); // 从session对象中获取“xhs-upload”属性值
//System.out.println(“**********doDecode1*****“+ioBuffer.toString());
//System.out.println(“1*****************“+ioBuffer.remaining()+“**“+ioBuffer.capacity());
if(null==mp){
if (ioBuffer.remaining() >= 8) {
//取消息体长度
int msgLength = ioBuffer.getInt();
int msgMethod = ioBuffer.getInt();
mp=new MsgPack();
mp.setMsgLength(msgLength);
mp.setMsgMethod(msgMethod);
// System.out.println(“2*****************“+ioBuffer.remaining()+“***“+mp.getMsgLength());
session.setAttribute(“nac-msg-pack“mp);
return true;
}
//System.out.println(“aaaaaaaaaaaa“);
return false;
}
//当缓冲区除去前八个字节剩余的字节大于或等于本条消息的长度时就取出否则就反复回调此方法,直到长度够解码
//如果本次解码成功,就自动清空本消息占得缓存
//当你认为读取到的数据已经够本次消息解码了,也就是够本次消息的长度,那么就返回true,否则就返回false
if(ioBuffer.remaining()>=mp.getMsgLength()){
//System.out.println(“3*****************“+ioBuffer.remaining()+“***“+mp.getMsgLength());
byte [] msgPack=new byte[mp.getMsgLength()];
//从缓冲区读取mp.getMsgLength()个字节的数据填充进数组
ioBuffer.get(msgPack);
mp.setMsgPack(new String(msgPackcharset));
//System.out.println(“**********doDecode3*****“+mp.toString());
session.removeAttribute(“nac-msg-pack“);
out.write(mp);
return true;
}
//System.out.println(“aaaaaaaaaaaa1“);
return false;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2139 2014-06-09 16:20 MINA2\.classpath
文件 383 2013-11-26 10:56 MINA2\.project
文件 88 2014-06-09 11:42 MINA2\.settings\org.eclipse.core.resources.prefs
文件 629 2013-11-26 10:56 MINA2\.settings\org.eclipse.jdt.core.prefs
文件 2689 2015-05-31 12:58 MINA2\bin\com\minaqq\charset\MsgProtocolDecoder.class
文件 2117 2015-05-31 12:58 MINA2\bin\com\minaqq\charset\MsgProtocolEncoder.class
文件 2914 2015-05-31 12:58 MINA2\bin\com\minaqq\client\ClientMsgProtocol.class
文件 1957 2015-05-31 12:58 MINA2\bin\com\minaqq\client\TimeClientHandler.class
文件 1539 2015-05-31 12:58 MINA2\bin\com\minaqq\domain\MsgPack.class
文件 1198 2015-05-31 12:58 MINA2\bin\com\minaqq\protocol\MsgProtocol.class
文件 1866 2015-05-31 12:58 MINA2\bin\com\minaqq\server\KeepAliveMessageFactoryImpl.class
文件 1763 2015-05-31 12:58 MINA2\bin\com\minaqq\server\KeepAliveRequestTimeoutHandlerImpl$1.class
文件 1586 2015-05-31 12:58 MINA2\bin\com\minaqq\server\KeepAliveRequestTimeoutHandlerImpl.class
文件 1618 2015-05-31 12:58 MINA2\bin\com\minaqq\server\ServerMessageHandler$1.class
文件 3305 2015-05-31 12:58 MINA2\bin\com\minaqq\server\ServerMessageHandler.class
文件 3622 2015-05-31 12:58 MINA2\bin\com\minaqq\server\ServerMsgProtocol.class
文件 864 2015-05-31 12:58 MINA2\bin\com\minaqq\test\MsgClientTest.class
文件 889 2015-05-31 12:58 MINA2\bin\com\minaqq\test\MsgServerTest.class
文件 1528 2015-05-31 12:58 MINA2\bin\com\minaqq\utils\xm
文件 1478 2015-05-31 12:58 MINA2\bin\com\minaqq\worker\ClientSendMsgThread.class
文件 2362 2015-05-31 12:58 MINA2\bin\com\minaqq\worker\ServerSendMsgThread.class
文件 2429 2013-12-05 16:28 MINA2\bin\log4j.properties
文件 284220 2014-06-09 11:57 MINA2\lib\commons-lang-2.6.jar
文件 31605 2014-06-09 11:57 MINA2\lib\commons-logging-1.0.3.jar
文件 614203 2014-06-09 11:57 MINA2\lib\javassist-3.11.0.GA.jar
文件 544021 2014-06-09 11:57 MINA2\lib\javassist-3.7.ga.jar
文件 17289 2014-06-09 11:57 MINA2\lib\jcl-over-slf4j-1.6.6.jar
文件 69578 2014-06-09 11:57 MINA2\lib\jzlib-1.1.1.jar
文件 644783 2014-06-09 11:56 MINA2\lib\mina-core-2.0.7.jar
文件 142581 2014-06-09 11:56 MINA2\lib\mina-example-2.0.7.jar
............此处省略62个文件信息
- 上一篇:pl2303 xp系统驱动
- 下一篇:word2vec 源码和pdf
相关资源
- PcShutDownByTime.zip
- CoreUIVue是基于Bootstrap4的免费Vue管理模
- MODERN ROBOTICS MECHANICS PLANNING AND CONTROL
- ccs官方软件及安装
-
st
yles 引文样式语言( CSL ) 引文样 - CCS中如何生成LIB文件-并在另外CCS项目
- CCS5.05.1可使用的license
- TI CCS V5.4 安装步骤及破解文件
- CCSv9链接及安装流程详解
- ecshop微信支付含手机版ectouch
- 基于MCS_51单片机的工业屏柜散热方案
- 清翔电子MCS51开发板资料_新版 01_开发
- MCS_51单片机与8255A的接口设计
- Fabrication and all-optical poling characteris
- 基于MVC模式的会员管理系统
- CSMA/CD等动画演示加源代码
- web班级网站设计代码
- Adobe Illustrator CS5原版amtlib.dll文件
- 2440 cs8900a 网卡驱动程序
- CS Selective Color Correct
- FIR低通滤波器 ccs运行环境
- cs5530的SPI程序
- 高校学生信息管理系统
- 基于CSocket的多人聊天室
- cs模式考试程序
- pcsx2-0.9.8-r4600
- 点阵字库 包含ACSII、字符、文字
- Game Physics Engine Development
- PCS7深入浅出西门子第一部V9.0
- CGCS2000高斯投影各投影带的定义文件
评论
共有 条评论