Поделиться через


Обработка ошибок Winsock

Большинство функций Windows Sockets 2 не возвращают конкретную причину ошибки при завершении выполнения функции. Некоторые функции Winsock возвращают значение ноль в случае успешного выполнения. В противном случае возвращается значение SOCKET_ERROR (-1) и можно получить определенное число ошибок, вызвав функцию WSAGetLastError. Для функций Winsock, возвращающих дескриптор, возвращаемое значение INVALID_SOCKET (0xffff) указывает на ошибку, и код ошибки можно получить при вызове WSAGetLastError. Для функций Winsock, возвращающих указатель, возвращаемое значение NULL указывает на ошибку и определенное число ошибок можно получить путем вызова функции WSAGetLastError.

Код ошибки Winsock можно преобразовать в HRESULT для использования в удаленном вызове процедуры (RPC) с помощью HRESULT_FROM_WIN32. В более ранних версиях пакета SDK для платформы HRESULT_FROM_WIN32 был определен как макрос в файле заголовка Winerror.h. В пакете средств разработки программного обеспечения Microsoft Windows HRESULT_FROM_WIN32 определяется как встроенная функция в файле заголовка Winerror.h.

коды ошибок сокетов Windows