如何利用python struct模块有效处理网络通信中的黏包问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计741个文字,预计阅读时间需要3分钟。
为什么会出现粘包现象:首先,只有在TCP协议中才会出现粘包现象,这是因为TCP协议是面向流的协议,在数据传输过程中还有缓冲机制来避免数据丢失。因此,在连续发送小数据时,可能会出现粘包现象。
为什么会出现黏包现象:
首先只有在TCP协议中才会出现黏包现象,是因为TCP协议是面向流的协议,在发送的数据传输的过程中还有缓存机制来避免数据丢失,因此,在连续发送小数据的时候,以及接收大小不符的时候容易出现黏包现象。本质还是因为我们在接收数据的时候不知道发送的数据的长短。
解决黏包问题
在传输大量数据之前首先告诉接收端要发送的数据大小,如果想更漂亮的解决问题,可以通过struct模块来定制协议。
struct模块:
功能:可以把一个类型,如数字,转成固定长度的bytes。
本文共计741个文字,预计阅读时间需要3分钟。
为什么会出现粘包现象:首先,只有在TCP协议中才会出现粘包现象,这是因为TCP协议是面向流的协议,在数据传输过程中还有缓冲机制来避免数据丢失。因此,在连续发送小数据时,可能会出现粘包现象。
为什么会出现黏包现象:
首先只有在TCP协议中才会出现黏包现象,是因为TCP协议是面向流的协议,在发送的数据传输的过程中还有缓存机制来避免数据丢失,因此,在连续发送小数据的时候,以及接收大小不符的时候容易出现黏包现象。本质还是因为我们在接收数据的时候不知道发送的数据的长短。
解决黏包问题
在传输大量数据之前首先告诉接收端要发送的数据大小,如果想更漂亮的解决问题,可以通过struct模块来定制协议。
struct模块:
功能:可以把一个类型,如数字,转成固定长度的bytes。

