tcp:粘包和拆包问题 粘包:多个小的包封装成一个大的数据包进行发送 拆包:一个完整的包可能会被TCP拆分成多个包进行发送 netty如何解决?采用解码器方式解决 解码器共有4个:LineBasedFrameDecoder、DelimiterBasedFrameDecoder、FixedLengthFrameDecoder
1、LineBasedFrameDecoder:按行切换的文本解码器。 LineBasedFrameDecode会依次遍历ByteBuf中的可读字节,判断是否有换行符,如果有,就以这个位置作为结束位置,从开始到结束位置就形成了一行。 2、DelimiterBasedFrameDecoder:按分隔符的解码器 3、FixedLengthFrameDecoder:定长消息的解码器
以上解码器都需要和StringDecoder结合使用 StringDecoder:将接收到的对象转换成字符串,然后调用handler