tcp黏包的问题?

时间:2021-07-19 20:42:01
这网上找到这样的一句话,

为了避免粘包现象,可采取以下几种措施。一是对于发送方引起的粘包现象,用户可通过编程设置来避免,TCP提供了强制数据立即传送的操作指令push,TCP软件收到该操作指令后,就立即将本段数据发送出去,而不必等待发送缓冲区满;
----------------
请问在socket编程中怎么使用 push 命令呢
具体到哪个函数?

8 个解决方案

#1


包头+数据,包头中含有后续数据的大小等信息

#2


学习了

#3


只要有完整的分包机制,粘包一点不存在问题的!

#4


setsockopt: TCP_NODELAY

#5


只要有完整的分包机制,粘包一点不存在问题的!

#6


主要是你要定一个数据结构,有字段能够获取到后面数据的长度等.

#7


包头+包体长度+包体,采用这种方法比较多!!

#8


TCP本身就是字节流的协议,并不区分应用程序所谓的“包”,如果你需要防止黏包,只能通过应用程序自己控制了,就是楼上的 ”包头+包体长度+包体“,而且系统并没有提供出准确的让包立即发送的API,有的也只是一些协商机制。

#1


包头+数据,包头中含有后续数据的大小等信息

#2


学习了

#3


只要有完整的分包机制,粘包一点不存在问题的!

#4


setsockopt: TCP_NODELAY

#5


只要有完整的分包机制,粘包一点不存在问题的!

#6


主要是你要定一个数据结构,有字段能够获取到后面数据的长度等.

#7


包头+包体长度+包体,采用这种方法比较多!!

#8


TCP本身就是字节流的协议,并不区分应用程序所谓的“包”,如果你需要防止黏包,只能通过应用程序自己控制了,就是楼上的 ”包头+包体长度+包体“,而且系统并没有提供出准确的让包立即发送的API,有的也只是一些协商机制。