Behandeln von Winsockfehlern

Die meisten Windows Sockets 2-Funktionen geben die spezifische Fehlerursache nicht zurück, wenn die Funktion zurückgegeben wird. Einige Winsock-Funktionen geben bei erfolgreicher Ausführung den Wert 0 zurück. Andernfalls wird der Wert SOCKET_ERROR (-1) zurückgegeben, und eine bestimmte Fehlernummer kann durch Aufrufen der WSAGetLastError-Funktion abgerufen werden. Für Winsock-Funktionen, die ein Handle zurückgeben, gibt der Rückgabewert INVALID_SOCKET (0xffff) einen Fehler an, und eine bestimmte Fehlernummer kann durch Aufrufen von WSAGetLastError abgerufen werden. Für Winsock-Funktionen, die einen Zeiger zurückgeben, gibt der Rückgabewert NULL einen Fehler an, und eine bestimmte Fehlernummer kann durch Aufrufen der WSAGetLastError-Funktion abgerufen werden.

Ein Winsock-Fehlercode kann mithilfe von HRESULT_FROM_WIN32 zur Verwendung in einem Remoteprozeduraufruf (RPC) in ein HRESULT konvertiert werden. In früheren Versionen des Platform Software Development Kit (SDK) wurde HRESULT_FROM_WIN32 als Makro in der Winerror.h-Headerdatei definiert. Im Microsoft Windows Software Development Kit (SDK) ist HRESULT_FROM_WIN32 als Inlinefunktion in der Winerror.h-Headerdatei definiert.

Windows Sockets-Fehlercodes