概述
概述
这个参数这里网上找了很多的资料,说的都不够详细,最终自己试出来了,下面用通俗一点的描述解释一下
内容
- maxFrameLength:最大帧长度。也就是可以接收的数据的最大长度。如果超过,此次数据会被丢弃。
- lengthFieldOffset:长度域偏移。就是说数据开始的几个字节可能不是表示数据长度,需要后移几个字节才是长度域。
- lengthFieldLength:长度域字节数。用几个字节来表示数据长度。
- lengthAdjustment:数据长度修正。因为长度域指定的长度可以使header+body的整个长度,也可以只是body的长度。如果表示header+body的整个长度,那么我们需要修正数据长度。
- initialBytesToStrip:跳过的字节数。如果你需要接收header+body的所有数据,此值就是0,如果你只想接收body数据,那么需要跳过header所占用的字节数。
举个例子
帧头 | 长度 | 命令ID | 参数 | Crc16 |
0xFA | Len | Cmd | xxxx | Crc16 |
FA 05 A6 DB D2
对于这个例子,LengthFieldBasedFrameDecoder(100,1,1,-2,0)
重点是第四个参数,之所以是负数是因为数据包读到第二个长度05才知道总长度,已经读了2个byte了,后面需要减去这个2,才是最终的数据包长度,所以第四个参数应该是-2
最后
以上就是耍酷滑板为你收集整理的netty的LengthFieldBasedFrameDecoder参数解释的全部内容,希望文章能够帮你解决netty的LengthFieldBasedFrameDecoder参数解释所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复