多线程 socket不到数据

nearwu 2012-03-02 11:04:04
小弟遇到的问题如下:
发送文件时类似三次握手方式,先是客户端发送数据,等待服务器响应,(如果时单线程的话则recv函数一直等待,可以接收服务器数据),但是采用多线程时,子线程recv函数因为等待时间片的原因,服务器发送的数据失败,如果在recv函数处加断点调试的话,就可以正常接收。如何在子线程中实现接收到服务器的响应报文?
先谢谢各位大虾了!
...全文
83 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
黑娃 2012-03-03
  • 打赏
  • 举报
回复
你想歪了,时间片不会导致这种问题的,你想想我们的速度怎么可能轻易的感觉到机器的切换。
断点可以说明,也是是因为你的子线程先结束了
Louistao 2012-03-03
  • 打赏
  • 举报
回复
你的客户端接数据是多线程的?
lieyingshengbao 2012-03-03
  • 打赏
  • 举报
回复
主线程等待子线程结束后再结束
帅得不敢出门 2012-03-03
  • 打赏
  • 举报
回复
非阻塞的吧,没收到就返回了?
羽飞 2012-03-03
  • 打赏
  • 举报
回复
这样说太模糊了,贴代码看看吧
还有,楼主把可能出现socket错误的地方用WSAGetLastError看看错误码是什么(Linux/Unix直接用errno了)

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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