定義
在重疊模型中,接收數據就要靠它了,它的參數也比recv要多,因為要用刀重疊結構嘛,它是這樣定義的:
int WSARecv(
SOCKET s, // 當然是投遞這個操作的套接字
LPWSABUF lpBuffers, // 接收緩衝區,與Recv函式不同
// 這裡需要一個由WSABUF結構構成的數組
DWORD dwBufferCount, // 數組中WSABUF結構的數量
LPDWORD lpNumberOfBytesRecvd,// 如果接收操作立即完成,這裡會返回函式調用所接收到的位元組數
LPDWORD lpFlags,// 說來話長了,我們這裡設定為0 即可
LPWSAOVERLAPPED lpOverlapped,// “綁定”的重疊結構
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine // 完成例程中將會用到的參數,我們這裡設定為 NULL
);
返回值:
WSA_IO_PENDING : 最常見的返回值,這是說明我們的WSARecv操作成功了,但是I/O操作還沒有完成,所以我們就需要綁定一個事件來通知我們操作何時完成