3 包长度偏移量

2020-05-14  本文已影响0人  程序男保姆

更详细的说明:使用LengthFieldBasedFrameDecoder解码器及自定义

        /** 4 偏移量解码 在解码器之前增加LengthFieldBasedFrameDecoder,用于处理半包消息,这样接受到的永远是整包消息 */
        //个人觉得和分隔符的意义差不多
        //maxFrameLength:指定了每个包所能传递的 "最大数据包大小" ;
        //lengthFieldOffset:指定了 "长度字段" 在字节码中的 偏移量;
        //lengthFieldLength:指定了'长度字段'所占用的 '字节长度';
        //lengthAdjustment:对一些不仅包含有消息头和消息体的数据进行消息头的长度的调整,这样就可以只得到消息体的数据,这里的lengthAdjustment指定的就是消息头的长度;
        // lengthAdjustment = 包总长度 - lengthFieldOffset - lengthFieldLength - lengthFieldLength内容长度
        //initialBytesToStrip:对于长度字段在消息头中间的情况,可以通过initialBytesToStrip忽略掉消息头以及长度字段占用的字节。
        pipeline.addLast(new LengthFieldBasedFrameDecoder(1024, 0, 2, 0, 2));
        /** 4 在编码器之前增加2个消息的消息长度字段*/
        pipeline.addLast(new LengthFieldPrepender(2));

上一篇 下一篇

猜你喜欢

热点阅读