粘包问题的最本质的原因在于接收对等方无法分辨消息与消息之间的边界在哪。我们可以通过使用某种方案给出边界,例如:
1,发送定长包,如果每个消息的大小都是一样的,那么在接收对等方只要累计接收数据,直到数据等于一个定长的数值就将它作为一个消息。
2,包头加上包体长度。包头是定长的4个字节,说明了包体的长度,接收对等方先接收包体长度,依据包体长度来接收包体。
3,可以使用更复杂的应用层协议。
TCP的粘包问题
最新推荐文章于 2024-07-20 14:43:24 发布
粘包问题的最本质的原因在于接收对等方无法分辨消息与消息之间的边界在哪。我们可以通过使用某种方案给出边界,例如:
1,发送定长包,如果每个消息的大小都是一样的,那么在接收对等方只要累计接收数据,直到数据等于一个定长的数值就将它作为一个消息。
2,包头加上包体长度。包头是定长的4个字节,说明了包体的长度,接收对等方先接收包体长度,依据包体长度来接收包体。
3,可以使用更复杂的应用层协议。