Что означает код errno 41 (EPROTOTYPE)?

 
Также может означать:
КонстантаТипОС
KERN_LOCK_OWNED_SELFКод возврата ядра macOSmacOS
ippStsI18nMsgCatalogInvalidСтатус Intel IPPЛюбая
EWOULDBLOCKerrnoLinux
ELNRNGerrnoSolaris
ENOTEMPTYerrnoWindows
SECURITY_SYSTEMКод BSODWindows
Предыдущий Следующий
EWOULDBLOCK ELNRNG

EPROTOTYPE

Протокол и тип сокета не образуют допустимое сочетание

EPROTOTYPE обозначает несоответствие значений, использованных при создании или настройке сокета. Семейство может поддерживаться, а протокол существовать, но этот протокол не подходит выбранному типу сокета.

Записывайте вместе все три входных параметра: семейство адресов, тип SOCK_* и номер протокола. Анализ только имени протокола может скрыть несоответствие, особенно если оболочка выбирает протокол по умолчанию для одних типов сокета и явный протокол для других.

Отличия от похожих ошибок создания

  • EPROTONOSUPPORT означает, что сам запрошенный протокол недоступен в выбранном семействе.
  • ESOCKTNOSUPPORT означает неподдерживаемый тип сокета; POSIX отмечает, что реализации исторически различались в выборе этих кодов для сочетания типа и протокола.
  • EAFNOSUPPORT применяется, когда семейство адресов не соответствует сокету или адресу, используемому операцией.

Диагностическое действие

Сведите ошибку к точному вызову socket(domain, type, protocol) или более позднему API, задавшему специфичное для протокола поведение. Не считайте это недоступностью удалённого узла: пока не создан пригодный локальный сокет, удалённая сторона не участвует.

Ссылки


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