使用WaitForSingleObject()函数。经常出现wait timeout怎么回事

hsjcnz 2014-04-18 09:32:09
写网络编程的代码。用到多线程编程实现基于UDP的可靠文件传输。用WaitForSingleObject()函数。经常出现wait timeout怎么回事,之前在本机上客户端与服务器之间传数据很快没出现过wait timeout的情况wait timeout的情况,在同一个局域网两台不同电脑上测老是出现wait timeout的情况使得传输速度很慢,这是怎么回事啊,本人对WaitForSingleObject()函数不是很熟悉,求指导。
...全文
980 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
c1987222 2014-04-21
  • 打赏
  • 举报
回复
你可以抓包试试看,以前曾遇到过类似的问题:两台主机在通信时,彼此的timeout设置不一致的话,容易导致超时。
简书成研 2014-04-20
  • 打赏
  • 举报
回复
你可能并未等到线程信号,所以就一直等待,到超时了,你可以试一试 使用事件来发出信号,WaitForSingleObject(WriteSY,INFINITE); 这是我的例子http://blog.csdn.net/u010236550/article/details/23699839
kuankuan_qiao 2014-04-19
  • 打赏
  • 举报
回复
是不是堵塞了 试试这个MsgWaitForMultipleObjects
路人乙2019 2014-04-19
  • 打赏
  • 举报
回复
引用 9 楼 u012026540 的回复:
引用 3 楼 zzdmfk 的回复:
你是等待线程结束还是事件受信?timeout说明在指定的时间内没有结束或受信,
事件受信,,,
那你不能靠改变waitforsingleobject来解决问题啊,优化网络通信过程吧。
worldy 2014-04-19
  • 打赏
  • 举报
回复
引用 6 楼 u012026540 的回复:
引用 2 楼 dingxz105090 的回复:
INFINITE
我试了一下INFINITE,它就一直等在那里,数据都不传了,而且我是在本机上测的,如果改成1000ms过一会它还会继续传的。。。。。
说明到一定时间后,不再传送数据,应该检查传送数据的代码
hsjcnz 2014-04-19
  • 打赏
  • 举报
回复
引用 3 楼 zzdmfk 的回复:
你是等待线程结束还是事件受信?timeout说明在指定的时间内没有结束或受信,
事件受信,,,
hsjcnz 2014-04-19
  • 打赏
  • 举报
回复
引用 7 楼 worldy 的回复:
代码有问题吧
嗯,只要出现一次wait timeout 接下来会连续跟着很多wait timeout,郁闷,找不出错误,文件在本机还是能传的
worldy 2014-04-19
  • 打赏
  • 举报
回复
代码有问题吧
hsjcnz 2014-04-19
  • 打赏
  • 举报
回复
引用 2 楼 dingxz105090 的回复:
INFINITE
我试了一下INFINITE,它就一直等在那里,数据都不传了,而且我是在本机上测的,如果改成1000ms过一会它还会继续传的。。。。。
hsjcnz 2014-04-19
  • 打赏
  • 举报
回复
引用 4 楼 VisualEleven 的回复:
你Wait等待什么内核对象?
就是一个事件m_hEvent
Eleven 2014-04-18
  • 打赏
  • 举报
回复
你Wait等待什么内核对象?
路人乙2019 2014-04-18
  • 打赏
  • 举报
回复
你是等待线程结束还是事件受信?timeout说明在指定的时间内没有结束或受信,
凌乱哥 2014-04-18
  • 打赏
  • 举报
回复
INFINITE
凌乱哥 2014-04-18
  • 打赏
  • 举报
回复
看样子是时间到了事件还没信号,你第二个参数换成IFINITY看看

18,363

社区成员

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

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