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().

相關詞條

相關搜尋

熱門詞條

聯絡我們