Что означает код errno 128 (ENOTSOCK)?

 
Также может означать:
КонстантаТипОС
ERROR_WAIT_NO_CHILDRENОшибка WindowsWindows
STATUS_ABANDONED_WAIT_0NTSTATUSWindows
ENETUNREACHerrnoSolaris
NMI_HARDWARE_FAILUREКод BSODWindows
Предыдущий Следующий
ENETUNREACH ENETRESET

ENOTSOCK

Что означает ENOTSOCK в Windows UCRT

ENOTSOCK означает «Операция с сокетом применена к объекту, который не является сокетом». Для условия «Операция с сокетом применена к объекту, который не является сокетом» код ENOTSOCK нужно связывать с первым возвратившим его вызовом и контекстом: сокет, локальный и удалённый адрес, семейство, протокол и состояние соединения.

Для условия «Операция с сокетом применена к объекту, который не является сокетом» сначала установите канал ошибки: UCRT использует errno, Win32 API — GetLastError(), а Winsock — WSAGetLastError(); эти значения не взаимозаменяемы. Для ENOTSOCK исходная английская страница также выделяет SOCKET, WSAENOTSOCK, WSAGetLastError, closesocket и CRT; эти данные полезно записать вместе с return value, потоком и временем события.

Диагностика

  • При ошибке «Операция с сокетом применена к объекту, который не является сокетом» (Windows UCRT, ENOTSOCK) запишите полный local/remote sockaddr, address family, socket type, protocol и текущее состояние сокета.
  • При ошибке «Операция с сокетом применена к объекту, который не является сокетом» (Windows UCRT, ENOTSOCK) разделяйте ошибки bind, connect, send и receive: одинаковый endpoint участвует в разных проверках.
  • При ошибке «Операция с сокетом применена к объекту, который не является сокетом» (Windows UCRT, ENOTSOCK) для неблокирующего режима дождитесь документированного события готовности и затем получите окончательный результат.
  • При ошибке «Операция с сокетом применена к объекту, который не является сокетом» (Windows UCRT, ENOTSOCK) сопоставьте маршруты, интерфейсы и тайм-ауты клиента, proxy и сервера, сохранив первый отказ.

На платформе Windows UCRT исправление ENOTSOCK считается подтверждённым, когда исходная операция даёт ожидаемый результат, а отдельный отрицательный тест по-прежнему воспроизводит именно условие «Операция с сокетом применена к объекту, который не является сокетом» без утечки ресурсов и потери первичной диагностики.

Ссылки для ENOTSOCK


Нужно найти другой код? Найти другой код состояния или ошибки.