Netty粘包拆包
Netty粘包拆包
1、什么是粘包拆包?2、解决方案3、代码示例3.1、MyClient3.2、MyClientHandler3.3、MyServer3.4、MyServerHandler3.5、MyMessageDecoder3.6、MyMessageEncoder3.7、MyMessageProtocol
1、什么是粘包拆包?
粘包拆包一般是发生在TCP协议层的,TCP作为传输层一般不知道上层(这里指的是我们的代码业务层)数据的具体含义,它会根据TCP缓冲区 的实际情况进行数据包的划分,所以在业务上认为是一个完整的包,可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成 一个大的数据包发送,这就是所谓的TCP粘包和拆包问题。面向流的通信是无消息保护边界的。 client发了两个数据包D1和D2,但是server端可能会收到如下几种情况的数据。如下图所示:
2、解决
Netty粘包拆包最先出现在Python成神之路。
共有 0 条评论