大家都知道:
Winsock使用了一个算法(不知道是什么),使得用同一个Socket,在数据包很小的情况下,在很短时间内连续send(例如:两个紧挨着的send函数)多次,它会把多个数据包合并成一个数据包然后发出去,这样你可能发了2个数据包,但只收到了1个数据急。请问,如何才能保证发送的和收到的数据包数目不变,或怎样才能让它不合并数据包,100分相赠,谢谢。
Winsock使用了一个算法(不知道是什么),使得用同一个Socket,在数据包很小的情况下,在很短时间内连续send(例如:两个紧挨着的send函数)多次,它会把多个数据包合并成一个数据包然后发出去,这样你可能发了2个数据包,但只收到了1个数据急。请问,如何才能保证发送的和收到的数据包数目不变,或怎样才能让它不合并数据包,100分相赠,谢谢。
解决方案 »
- 大侠们 求助啊:MFC中如何从OnChangEdit编辑框中提取数据
- 一个简单的创建链表的代码!我一时有点想不明白了!请讲解!!!
- 跪求 BCGCB47.lib!!!!急呀
- 请问哪本书上有比较详细的介绍钩子的?
- 已知:html数据,CDC * pDC。如何把html画到pDC上,只使用pDC的函数接口。
- 菜鸟问题
- 属性页里有若干个EDIT控件,如何能做到EDIT内内容一旦改变,而应用按钮马上可以起作用
- 关于连接数据库的问题
- 一个基础的问题:矩形显示问题
- 请教有哪位大侠在广域网上试验成功多播MultiCast了?!!!!
- ADO访问DBF数据表
- 有关ListView的背景图片问题(关于CListCtrl::SetBkImage)
你可以使用setsockopt(TCP_NODELAY)来强制发送(send函数直接拼包发送,不把多个包合并),但接收端如果稍慢的话,接收端仍然会将多个包合并之后返回给应用层的。所以,除了速度慢点之外,没有什么优点
设置TCP_NODELAY禁止Nagle算法。
设置TCP_NODELAY禁止Nagle算法。