處理 Winsock 錯誤

大部分的 Windows Sockets 2 函式不會在函式傳回時傳回錯誤的特定原因。 如果成功,某些 Winsock 函式會傳回零的值。 否則,會傳回值 SOCKET_ERROR (-1) ,而且可以藉由呼叫 WSAGetLastError 函式來擷取特定的錯誤號碼。 對於傳回控制碼的 Winsock 函式,INVALID_SOCKET (0xffff) 的傳回值表示錯誤,而且呼叫 WSAGetLastError可以擷取特定錯誤號碼。 針對傳回指標的 Winsock 函式, Null 的傳回值表示可以藉由呼叫 WSAGetLastError 函式來擷取錯誤和特定錯誤號碼。

Winsock 錯誤碼可以轉換成 HRESULT,以在遠端程序呼叫中使用 (RPC) 使用 HRESULT_FROM_WIN32。 在舊版的 Platform Software Development Kit (SDK) 中,HRESULT_FROM_WIN32已定義為 Winerror.h 標頭檔中的宏。 在 Microsoft Windows 軟體發展工具組 (SDK) 中,HRESULT_FROM_WIN32定義為 Winerror.h 標頭檔中的內嵌函式。

Windows Sockets 錯誤碼