03 2015 档案
摘要:处理原理:半包:即一条消息底层分几次发送,先有个头包读取整条消息的长度,当不满足长度时,将消息临时缓存起来,直到满足长度再解码粘包:两条完整/不完整消息粘在一起,一般是解码完上一条消息,然后再判断是否有剩余字节,有的话缓存起来,循环半包处理客户端接收代码: private void callR...
阅读全文
摘要:public class SocketAsyncEventArgsPool{ //已使用记录 private List usedRecord; //未使用记录 private List unUsedRecord; //池子...
阅读全文
摘要:1.Heap Buffer(堆缓冲区)2.Direct Buffer(直接缓冲区)3.Composite Buffer(复合缓冲区)4.PooledByteBuf 池缓冲 readerInex 当前读取索引 writerIndex 当前写索引 0~readerInex 之间被视为 ...
阅读全文
摘要:ByteToMessageDecoder 1.socket 移除时触发,最后次读数据处理 @Override public final void handlerRemoved(ChannelHandlerContext ctx...
阅读全文
摘要:1.LineBasedFrameDecoder 1.先找到结束符索引 private static int findEndOfLine(final ByteBuf buffer) { final int n = buffer.writerIn...
阅读全文