摘要:
TCP以流的方式进行数据传输,上层应用协议为了对消息进行区分,通常采用以下4中方式: DelimiterBaseFrameDecoder——分隔符解码器,FixedLengthFrameDecoder——定长解码器 下面我们采用#为分隔符进行代码练习运行。 EchoServer服务端代码 服务端处理 阅读全文
摘要:
发生了粘包,我们需要将其清晰的进行拆包处理,这里采用LineBasedFrameDecoder来解决 LineBasedFrameDecoder的工作原理是它依次遍历ByteBuf中的可读字节,判断看是否有“\n”或“\r\n”,如果有,就以此为结束位置,从可读索引到结束位置区间的字节就组成一行,它 阅读全文
摘要:
TCP是个流协议,流没有一定界限。TCP底层不了解业务,他会根据TCP缓冲区的实际情况进行包划分,在业务上,一个业务完整的包,可能会被TCP底层拆分为多个包进行发送,也可能多个小包组合成一个大的数据包进行发送,这就是TCP的拆包和粘包。 产生问题的原因 应用程序write写入的字节大小大于套接字缓冲 阅读全文