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

 
Также может означать:
КонстантаТипОС
EADDRINUSEerrnoLinux
ENOSRerrnomacOS
OBJECT1_INITIALIZATION_FAILEDКод BSODWindows
Предыдущий Следующий
ENOSR EADDRNOTAVAIL

EPROTOTYPE

Протокол и тип сокета по отдельности известны, но несовместимы

EPROTOTYPE обозначает несоответствие протокола и запрошенной семантики сокета. Solaris сообщает, что указанный протокол не поддерживает тип сокета. POSIX socket() аналогично допускает эту ошибку, когда ненулевой протокол запрошен с типом, который этот протокол не поддерживает.

Это точнее, чем EPROTONOSUPPORT: проблема не просто в отсутствии реализации протокола. Также это отличается от ESOCKTNOSUPPORT, где сам тип сокета может не поддерживаться семейством или реализацией. Для различения требуется ошибочная тройка домена, типа и протокола.

Проверка сочетания аргументов сокета

  • Запишите символьные и числовые значения домена, типа и протокола, переданные socket().
  • Проверьте необходимость явного номера протокола; нулевой протокол просит реализацию выбрать значение по умолчанию, подходящее семейству и типу.
  • Проверьте скопированные константы платформы и условную компиляцию, если один код работает на нескольких UNIX-подобных системах.

Ссылки


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