2 ufewah ufewah 于 2014.07.10 17:05 提问

GetQueuedCompletionStatus函数奇怪的错误?

本人在UDP的客户端对socket使用了完成端口,在工作线程中,GetQueuedCompletionStatus返回0,GetLastError错误码为0x36E: $err,hr 0x000003e6 内存位置访问无效。,这是什么问题呢?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
完成端口GetQueuedCompletionStatus返回值的问题
 完成端口GetQueuedCompletionStatus返回值的问题先看看GetQueuedCompletionStatus函数的完整声明:BOOL GetQueuedCompletionStatus(  HANDLE CompletionPort,         LPDWORD lpNumberOfBytes,      PULONG_PTR lpCompletionKey,    L
完成端口 GetQueuedCompletionStatus 异常处理
公司的校园平安卡产品,C/S结构,客户端数目大概50个,服务端采用IOCP(完成端口)与客户端通信,Socket UDP协议。 服务端程序基本流程:  1.程序建立IOCP模型并绑定Socket,用WSARecvFrom 向IOCP通道中投递数据接收请求  2.Work线程,整体是循环:使用GetQueuedCompletionStatus获取通道中已经完成的请求和数据,然后有一个判断:
PostQueuedCompletionStatus 的应用
<br />PostQueuedCompletionStatus 函数向IOCP发送三个参数(DWORD dwNumberOfBytesTransferred, ULONG_PTR dwCompletionKey, LPOVERLAPPED lpOverlapped),GetQueuedCompletionStatus 函数将接收到这三个参数。IOCP将不会对这三个参数做任何操作。<br />   在实际应用中,该函数一般用于控制IOCP接收线程的退出。其实,该函数的用法远不止于此,它还可以作为消息来使用。
完成端口GetQueuedCompletionStatus()返回错误,怎样获得真正的错误代码
GetQueuedCompletionStatus()返回错误,说明I/O失败。此时调用GetLastError()得到的往往是ERROR_NETNAME_DELETED(64),WSAGetLastError()也一样,这显然不是真正的错误代码,那么怎么得到真正的错误代码呢? 给出下面的代码: int YourIOCPClass::GetSockError(WSAOVERLAPPED* pW
GetQueuedCompletionStatus函数的返回值
1、如果函数从完成端口取出一个成功I/O操作的完成包,返回值为非0 2、如果 *lpOverlapped为空并且函数没有从完成端口取出完成包,返回值则为0 3、如果 *lpOverlapped不为空并且函数从完成端口出列一个失败I/O操作的完成包,返回值为0 4、如果关联到一个完成端口的一个socket句柄被关闭了,则GetQueuedCompletionStatus返回ERROR_SUCC
GetQueuedCompletionStatus的返回值
<br />完成端口GetQueuedCompletionStatus返回值的问题 <br />先看看GetQueuedCompletionStatus函数的完整声明:<br />BOOL GetQueuedCompletionStatus(<br />HANDLE CompletionPort,       <br />LPDWORD lpNumberOfBytes,    <br />PULONG_PTR lpCompletionKey, <br />LPOVERLAPPED *lpOverlapped
GetQueuedCompletionStatus返回ERROR_SEM_TIMEOUT
原因是黑客攻击 ERROR_NETNAME_DELETED 客户端主动关闭连接 ERROR_CONNECTION_ABORTED 服务器主动关闭 ERROR_SEM_TIMEOUT 每秒收到5000个以上的Accept时出现
GetQueuedCompletionStatus返回值的处理顺序
 IOCP 是5种socket 编程模型里最复杂的一种,只使用几个api,就能使程序支持成百上千个连接,而GetQueuedCompletionStatus函数又是IOCP里最重要的api,这个函数返回值含有各种信息。 一般的处理顺序为:是先判断函数GetQueuedCompletionStatus的返回值,如果失败,看看WSAGetLastError()的值。否则检查OVERLAPP结构
IOCP错误处理(转)
完成端口GetQueuedCompletionStatus返回值的问题 先看看GetQueuedCompletionStatus函数的完整声明: BOOL GetQueuedCompletionStatus(   HANDLE CompletionPort,          LPDWORD lpNumberOfBytes,       PULONG_PTR lpCompletion
GetQueuedCompletionStatus一直阻塞
  使用WSASend或WSARecv投递相应的发送或接收请求后,始终没有收到相应返回通知,或者另外一个问题,在使用完成端口时,GetQueuedCompletionStatus一直阻塞,这都是由WSARecv或WSASend函数的调用参数未初始化造成的。  已经有好几次碰到这个问题了,出现问题调试出来才又一次的感觉到事情的严重性。要养成初始化参数的好习惯。