内容简介:最近做项目有一个通讯协议,在其如图所示,而
最近做项目有一个通讯协议,在其 结束符 后还有两个字节的 校验符号
如图所示, 结束符 后的 校验码 的值是变化的
而 Netty 自带的 DelimiterBasedFrameDecoder 可以支持结束符拆包但是不支持目前这种情况。我们通过对 DelimiterBasedFrameDecoder 进行简单的修改实现。
新建类 io.netty.handler.codec.AdditionalDelimiterBasedFrameDecoder ,将 io.netty.handler.codec.DelimiterBasedFrameDecoder 代码拷贝其中,找到:
int minDelimLength = minDelim.capacity();
修改为:
int minDelimLength = minDelim.capacity(); final int checkLength = 2; minDelimLength = minDelimLength + checkLength;
原理很简单,将原有的 分隔符 的长度增加两个字节,将后面两位 校验码 包含进去。
声明使用:
new AdditionalDelimiterBasedFrameDecoder(4096, Unpooled.copiedBuffer(Unpooled.buffer(1).writeByte(0xCC).array())
以上所述就是小编给大家介绍的《Netty下不固定的Delimiter的拆包处理》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 自然语言处理之数据预处理
- Python数据处理(二):处理 Excel 数据
- 什么是自然语处理,自然语言处理主要有什么
- 集群故障处理之处理思路以及健康状态检查(三十二)
- Spark 持续流处理和微批处理的对比
- Android(Java)日期和时间处理完全解析——使用Gson和Joda-Time优雅地处理日常开发中关于时间处理的...
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Beginning Google Maps API 3
Gabriel Svennerberg / Apress / 2010-07-27 / $39.99
This book is about the next generation of the Google Maps API. It will provide the reader with the skills and knowledge necessary to incorporate Google Maps v3 on web pages in both desktop and mobile ......一起来看看 《Beginning Google Maps API 3》 这本书的介绍吧!
HTML 编码/解码
HTML 编码/解码
HSV CMYK 转换工具
HSV CMYK互换工具