美文网首页
3 包长度偏移量

3 包长度偏移量

作者: 程序男保姆 | 来源:发表于2020-05-14 19:36 被阅读0次
    • LengthFieldBasedFrameDecoder (解码)会按照参数指定的包长度偏移量数据对接收到的数据进行解码
    • LengthFieldPrepender (编码) 会在响应的数据前面添加指定的字节数据,这个字节数据中保存了当前消息体的整体字节数据长度

    更详细的说明:使用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));
    
    

    相关文章

      网友评论

          本文标题:3 包长度偏移量

          本文链接:https://www.haomeiwen.com/subject/lxyxohtx.html