| Предыдущий | Следующий |
| ENOSTR | ENOTCONN |
EADDRNOTAVAIL
Запрошенную локальную конечную точку нельзя назначить
Solaris документирует EADDRNOTAVAIL для создания транспортной конечной точки с адресом, отсутствующим на текущем компьютере. В коде bind это направляет диагностику на запрошенный локальный адрес, а не на прослушивание удалённого сервера.
Состояние отличается от EADDRINUSE, где адрес существует, но протокол не разрешает ещё одно использование, и от EAFNOSUPPORT, где само семейство адресов не поддерживается или несовместимо. Запись точного локального адреса и семейства позволяет различить эти ошибки.
Проверки локального адреса
- Убедитесь, что адрес настроен в соответствующей зоне Solaris или сетевом контексте и не исчез после перенастройки интерфейса.
- Проверьте, не выбрали ли разрешение имён или конфигурация удалённый адрес для локального bind.
- Для кода IPv4/IPv6 убедитесь, что семейство структуры адреса соответствует домену сокета и запрошенному локальному адресу.
Ссылки
- Oracle Solaris: каталог errno intro(2)
- POSIX: правила локального адреса bind()
- POSIX: правила domain, type и protocol для socket()
Нужно найти другой код? Найти другой код состояния или ошибки.
