tcp 粘包是怎样发生的?
1、什么是 tcp 粘包?
发送方发送的多个数据包:到接纳方缓冲区首尾相连,粘成一包,被接纳。
2、原因
TCP 协议默许运用 Nagle 算法或许会把多个数据包一次发送到接纳方。
运用程读取缓存中的数据包的速度小于接纳数据包的速度,缓存中的多个数据包会被运用程序当成一个包一次读取。
3、处理办法
发送方运用 TCP_NODELAY 选项来封闭 Nagle 算法
数据包添加开端符和完毕,运用程序读取、区别数据包。
在数据包的头部界说整个数据包的长度,运用程序先读取数据包的长度,然后读取整个长度的包字节数据,确保读取的是单个包且完好。
-A8站源码交易平台