发送端发送1000字节,接收端发生FD_READ事件,假设这1000字节完整地一次性发送到了接收端
在事件处理中,用recv读出500字节即返回
此时发送端数据已发送完成,不再发新数据,
请问接收端是否还会产生FD_READ事件来提醒我还有500字节未处理
在事件处理中,用recv读出500字节即返回
此时发送端数据已发送完成,不再发新数据,
请问接收端是否还会产生FD_READ事件来提醒我还有500字节未处理
解决方案 »
- 界面空控件重叠
- 求助日期时间选择器控件 CDateTimeCtr
- VC++ 组件 COM 类调用 CComObject<CKdbParameters>::CreateInstance 方法 引用计数变成负数
- 如何在后台实现监听某一特定的程序的按键
- 继承了一个自绘制的CListCtrl,checkBox疑问
- 在EDIT控件内响应鼠标响应函数应该怎么写
- 如何通知第三方厂商的sdk函数的线程立刻结束.
- 关于OnAccept不能触发
- 关于界面换肤的问题
- 请问,在VC中,系统定义的那些消息都是在那个文件中定义的,谢谢拉。
- 【100】怎么删除对话框默认创建的按钮回车接收属性?
- 有什么函数可以获得到QQ用户名和密码的句柄?
-----------------
有点疑问,TCP协议不是有自己的缓存吗?
假如说发送端的缓冲大于接收端的缓冲,一定会发生数据丢失吗?
如果不能全部取出的话,是否会象2楼说的那样,未取出的数据丢失了,再也取不到?
-----------
这是我希望的,但现在有几种不同的意见了,有点拿不准,希望更多朋友参与讨论如果是这样的话,那么每recv一次后是不是要重新调用select才能有FD_READ,还是说只要在socket连接完成后select一次后以后只要缓冲区有数据就会有FD_READ事件?
谢谢诸位兄弟,结帖前想再问个问题:假如发送端一次发的数据长度比较大的话,在tcp底层处理时会拆分成几部分发送的吧,那么
接收端会发生几次FD_READ事件呢?是一次(所有数据全部到达后触发),还是多次(每个部分达到都触发)?