客户端什么时候产生FD_READ

huanchunling 2010-11-05 11:51:58
我在server端一次发送了2百万个字节,send()函数也返回200万个字节,说明所有字节都发送成功了,我想知道在client低层缓冲区是在接受完所有的的字节后,才发送FD_READ,如果不是,那客户端什么时候发送的这个FD_READ呢

还有一个问题
send()到底一次能发送多少个字节的数据,我发送200百万可以,500百万也可以?
...全文
141 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wocow3 2010-11-06
  • 打赏
  • 举报
回复
TCP?
recv()一般会在三种情况下返回
1。接收的TCP包带有PUSH标志;
2。接收缓冲区满;
3。0.5秒内没有收到更多数据;
huanchunling 2010-11-06
  • 打赏
  • 举报
回复
我一直搞不懂send 和 recv()函数的内部是怎么个逻辑,有没有什么好的文档可以介绍,
mayudong1 2010-11-05
  • 打赏
  • 举报
回复
client端只要有可读的数据就会有FD_READ消息
Eleven 2010-11-05
  • 打赏
  • 举报
回复
有数据到达
xgPaul 2010-11-05
  • 打赏
  • 举报
回复
客户端的接收缓冲区只要有数据就会响应FD_READ。。。
visualwind 2010-11-05
  • 打赏
  • 举报
回复
只要有数据到达就会FD_READ,如果你要想在接受完所有的的字节后才发送FD_READ的话,就只能自己封装一层了。
send一次发送多大都可以,到了底层会自动按MTU单元大小分包的,无论一次send发多少自己,实际发在网络上的数据包大小都是MTU的大小。

18,363

社区成员

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

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