最近项目使用TCP通讯,我使用netty做了一个服务端,供客户端进行连接通讯,但是发现传输的json文件有时候会出现粘包和半包的问题
我们就约定在传输的json数据前加上了数据长度,格式为:
0065{"pattern":"05","number":1,"position":["01","00","00","00","00"]},前四位是定长的数据长度,后面是对应的数据
我的解决办法就是,先读取出来对应的数据长度,然后再根据长度进行判断,如果长度不够则等待下次读取,对netty服务端添加自定义解码,方式如下:
该方法经过测试,目前没发现什么问题,有大神有更好的解决办法,或者该方法存在什么问题,希望大神多多指教,谢谢大家