异步方式下socket接收问题

DreamingFlyingFlying 2005-12-16 10:49:01
异步方式下设定了接收缓冲区为2000,在接收的时候如果recv的时候所读数据长度大于2000,我设了9999,却能读到2760个字节,这是为什么?
...全文
101 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nuaawenlin 2005-12-16
  • 打赏
  • 举报
回复
tcp的Nagle算法的问题

你使用send发送的时候

是将数据从用户缓冲区拷贝到系统缓冲区

然后tcp使用发送窗口对数据进行发送

并且tcp发送数据的时候,nagle算法会根据两个数据间的间隔时间来判断时候将
两个或多个数据合成一个数据进行发送。

反之,接收也是如此
freemme 2005-12-16
  • 打赏
  • 举报
回复
实际上tcp缓冲区分多次接收到达的ip包,然后把数据连续的拷贝到你的应用程序缓冲区,就会有这样的现象

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧