我在一个线程(线程一)里使用GetQueuedCompletionStatus等待I/O事件的发生,
能够接受连接,
但接受连接后,我马上使用另一线程(线程二)的WSARecv去读数据,
线程一可以接受到读取事件,但为什么就是GetQueuedCompletionStatus函数总是失败啊?在accept时,我使用的AcceptEx中的lpOverlapped参数使用的是一个数据结构(结构一),
在WSARecv时是使用的另一个结构(结构二),但Overlapped是使用结构一的overlapped的拷贝.不知道为什么老是GetQueuedCompletionStatus失败啊!
很急啊,大家帮帮忙!
先在这里谢谢大家了.样子是这样的:
线程一:
while(TRUE)
{
GetQueuedCompletionStatus();
........
}线程二:
while(TRUE)
{
//等待事件,事件有信号执行下面的
WSARecv();
..........
}
在执行WSARecv后线程一可以接受到事件,但总是返回失败.
调了半天了,希望大家帮帮忙,谢谢!
能够接受连接,
但接受连接后,我马上使用另一线程(线程二)的WSARecv去读数据,
线程一可以接受到读取事件,但为什么就是GetQueuedCompletionStatus函数总是失败啊?在accept时,我使用的AcceptEx中的lpOverlapped参数使用的是一个数据结构(结构一),
在WSARecv时是使用的另一个结构(结构二),但Overlapped是使用结构一的overlapped的拷贝.不知道为什么老是GetQueuedCompletionStatus失败啊!
很急啊,大家帮帮忙!
先在这里谢谢大家了.样子是这样的:
线程一:
while(TRUE)
{
GetQueuedCompletionStatus();
........
}线程二:
while(TRUE)
{
//等待事件,事件有信号执行下面的
WSARecv();
..........
}
在执行WSARecv后线程一可以接受到事件,但总是返回失败.
调了半天了,希望大家帮帮忙,谢谢!
解决方案 »
- TCP 传输图片,图片接受成功,但是显示失真,总是缺一部分?
- MFC 菜单权限 设置问题
- 多视图下做画图板碰到的问题
- 静态文本框,如何实现动态改变内容,同时保持背景透明?
- ============散分==========发布Skin++===========请大家帮忙测试===========
- 在VC中调用脚本能返回值吗
- 谁知道 这条sql语句错在那里?
- winxp 一个小问题,
- 请问高手,如何在网页上实现类似vb的DBGrid的功能?(有线索就给分!)
- 程序员也应该拥有的
- 请问 “&=”这个符号在VC++中是什么意思?初学VC,多多帮助,马上就结,非常感谢!
- ★★★调用recvfrom获取的IP地址与实际的发送方地址不同,请高手帮忙看看代码!!★★★
1、完成端口GetQueue函数完成时,你应该判断dwIOSize的值,它指明了发送或者接收的字节数,你不需要再试图用wsarecv去接收数据,使用wsarecv应该是你希望让完成端口去接收的时候。一般这个时候wsarecv应该返回的是WSA_IO_PENDING