資源簡介
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
評論
共有 條評論