Что означает код errno 99 (EADDRNOTAVAIL)?

 
Также может означать:
КонстантаТипОС
ENOSTRerrnomacOS
ENOPROTOOPTerrnoSolaris
SECURITY1_INITIALIZATION_FAILEDКод BSODWindows
Предыдущий Следующий
EPROTOTYPE ENOSTR

EADDRNOTAVAIL

Что означает EADDRNOTAVAIL в Linux

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

После отказа, соответствующего «Не удалось назначить запрошенный адрес», сохраните errno немедленно: любой последующий системный или библиотечный вызов может заменить значение. Для EADDRNOTAVAIL исходная английская страница также выделяет EHOSTUNREACH, ENETUNREACH, bind и DNS; эти данные полезно записать вместе с return value, потоком и временем события.

Диагностика

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

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

Ссылки для EADDRNOTAVAIL


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