WSAGetOverlappedResult()

簡述:返回指定套接口上一個重疊操作的結果。
#include <winsock2.h>
BOOL WSAAPI WSAGetOverlappedResult(
SOCKET s,
LPWSAOVERLAPPED lpOverlapped,
LPDWORD lpcbTransfer,
BOOL fWait,
LPDWORD lpdwFlags );
s:標識套接口。這就是調用重疊操作(WSARecv()WSARecvFrom()、WSASend()、WSASendTo() 或 WSAIoctl())時指定的那個套接口
lpOverlapped:指向調用重疊操作時指定的WSAOVERLAPPED結構。
lpcbTransfer:指向一個32位變數,該變數用於存放一個傳送或接收操作實際傳送的位元組數,或WSAIoctl()傳送的位元組數。
fWait:指定函式是否等待掛起的重疊操作結束。若為真TRUE則函式在操作完成後才返回。若為假FALSE且函式掛起,則函式返回FALSE,WSAGetLastError()函式返回WSA_IO_INCOMPLETE。
lpdwFlags:指向一個32位變數,該變數存放完成狀態的附加標誌位。如果重疊操作為WSARecv()或WSARecvFrom(),則本參數包含lpFlags參數所需的結果。
返回值:
如果函式成功,則返回值為真TRUE。它意味著重疊操作已經完成,lpcbTransfer所指向的值已經被刷新。應用程式可調用WSAGetLastError()來獲取重疊操作的錯誤信息
如果函式失敗,則返回值為假FALSE。它意味著要么重疊操作未完成,要么由於一個或多個參數的錯誤導致無法決定完成狀態。失敗時,lpcbTransfer指向的值不會被刷新。應用程式可用WSAGetLastError()來獲取失敗的原因。
WSANOTINITIALISED 在調用本API之前應成功調用WSAStartup()。
WSAENETDOWN 網路子系統失效。
WSAENOTSOCK描述字不是一個套接口
WSA_INVALID_HANDLE WSAOVERLAPPED結構的hEvent域未包含一個有效的事件對象句柄。
WSA_INVALID_PARAMETER 有不可接受的參數。
WSA_IO_INCOMPLETE fWait假FALSE且輸入/輸出操作尚未完成。
另請參閱: WSACreateEvent(), WSAWaitForMultipleEvents(),WSARecv(), WSARecvFrom(), WSASend(), WSASendTo(),WSAConnect(), WSAAccept(), WSAIoctl().

相關詞條

熱門詞條

聯絡我們