admin管理员组

文章数量:1531542

2023年12月13日发(作者:)

完成端口GetQueuedCompletionStatus()返回错误,怎样获

得真正的错误代码

GetQueuedCompletionStatus()返回错误,说明I/O失败。此时调用GetLastError()得到的往往是

ERROR_NETNAME_DELETED(64),WSAGetLastError()也一样,这显然不是真正的错误代码,那么怎么得到真正的错误代码呢?

给出下面的代码:

int YourIOCPClass::GetSockError(WSAOVERLAPPED* pWSAOVERLAPPED)

{

DWORD dwTrans;

DWORD dwFlags;

if(FALSE == WSAGetOverlappedResult(m_IOSock, pWSAOVERLAPPED, &dwTrans, FALSE, &dwFlags))

return WSAGetLastError();

else

return ERROR_SUCCESS;

}

使用了WSAGetOverlappedResult()函数,封装一下就可以用在代码里了:)

本文标签: 返回错误获得端口