TCP黏包/拆包原理
TCP是一个流的协议。一个完整的包可能被TCP拆分为多个包进行发送;也有可能把多个小的包封装成一个大的数据包一起发送
例如
客户端发送两个包给服务器,可能产生的情况:
1 a b单独发送
2 a b部分 b部分
...
服务端TCP的接口较小,这两个包将分多次发送到服务器
netty中解决TCP黏包/拆包的方法
利用自带的LineBasedFrameDecoder和StringDecoder解决TCP黏包问题
LineBasedFrameDecoder原理
依次遍历bytebuf中的可读字节看,判断是否有换行符
Stringdecoder
将接受到的对象转换成字符串
共同解决得是按行切换的文本转码器