WSAGetOverlappedResult()

王朝百科·作者佚名  2010-01-05  
宽屏版  字体:   |    |    |  超大  

简述:返回指定套接口上一个重叠操作的结果。

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

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有