WSAGetLastError 函数 (winsock.h)
WSAGetLastError 函数返回失败的最后一个 Windows 套接字操作的错误状态。
语法
int WSAGetLastError();
返回值
返回值指示此线程最后一次失败的 Windows 套接字操作的错误代码。
注解
WSAGetLastError 函数返回调用线程发生的最后一个错误。 当特定的 Windows 套接字函数指示发生了错误时,应立即调用此函数以检索失败函数调用的扩展错误代码。 此扩展错误代码可能不同于使用 SO_ERROR 的 optname 参数调用时从 getockopt 获取的错误代码,后者特定于套接字,因为 WSAGetLastError 适用于所有特定于线程的套接字。
如果函数调用的返回值指示错误代码中返回了错误或其他相关数据,则应立即调用 WSAGetLastError 。 这是必需的,因为某些函数如果成功,可能会将最后一个扩展错误代码重置为 0,从而覆盖以前失败的函数返回的扩展错误代码。 若要专门重置扩展错误代码,请使用 WSASetLastError 函数调用,并将 iError 参数设置为零。 使用 optname 参数SO_ERROR调用的 getsockopt 函数还会将扩展错误代码重置为零。
WSAGetLastError 函数不应用于在收到异步消息时检查扩展的错误值。 在这种情况下,扩展的错误值在消息的 lParam 参数中传递,这可能与 WSAGetLastError 返回的值不同。
此函数返回的 Windows 套接字扩展错误代码和错误的文本说明列在 Windows 套接字错误代码下。 这些错误代码以及与错误代码关联的简短文本说明在 Winerror.h 头文件中定义。 FormatMessage 函数可用于获取返回错误的消息字符串。
有关如何在将套接字应用程序移植到 Winsock 时处理错误代码的信息,请参阅 错误代码 - errno、h_errno和 WSAGetLastError。
Windows Phone 8:Windows Phone 8 及更高版本上的 Windows Phone 应用商店应用支持此函数。
Windows 8.1和 Windows Server 2012 R2:Windows 8.1、Windows Server 2012 R2 及更高版本的 Windows 应用商店应用支持此函数。
要求
最低受支持的客户端 | Windows 8.1、Windows Vista [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | winsock.h (包括 Winsock2.h) |
Library | Ws2_32.lib |
DLL | Ws2_32.dll |