服务端利用WSAAsyncSelect对FD_READ消息处理的问题

cloudrain 2005-10-06 11:03:26
偶在FD_READ中创建接收线程里接收客户端(阻塞套节字,连续发送多个数据包)发送TCP包数据(2K左右),然后处理(收到1个包处理1次),由于处理要耗费一定时间造成只接收了部分包,其它包数据未来得及接收。怎样才能解决数据接受不全这个问题?就是包数据处理另外派生1个处理线程或客户端每发1个包延时也不能解决这个问题啊
...全文
142 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nuaawenlin 2005-10-07
  • 打赏
  • 举报
回复
多线程接收
Wolfe 2005-10-06
  • 打赏
  • 举报
回复
我用过WSAAsyncSelect也用过重叠IO和完成端口,都会出现这个情况。甚至我用同步模式服务端也只是接到最初的几包数据。一直没有搞清楚什么原因。
后来我就绕了个道,牺牲了效率:服务端每接收处理一个数据包就发送一个确认包给客户端,客户端接到确认包后再继续发送下一包。
oyljerry 2005-10-06
  • 打赏
  • 举报
回复
每个请求开线程处理,如果客户过多,考虑更加高效的I/O模型 重叠端口 ,IOCP等

18,356

社区成员

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

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