| Предыдущий | Следующий |
| ENODATA | EAFNOSUPPORT |
EDESTADDRREQ
У транспорта нет адреса назначения для этой операции
EDESTADDRREQ — ошибка аргумента или состояния транспортной конечной точки: операции требуется адрес, но он не передан. Это особенно полезно при диагностике отправки без соединения, где неподключённому сокету обычно нужен адрес назначения для каждого сообщения.
Следует отличать это от ENOTCONN. Оба статуса могут относиться к конечной точке без peer, однако Solaris явно определяет EDESTADDRREQ как отсутствие обязательного адреса, тогда как ENOTCONN описывает операцию, запрещённую из-за отсутствующего состояния соединения.
Проверьте способ выбора назначения
- Определите, был ли сокет намеренно подключён и ожидает ли проблемный API аргумент назначения.
- Для
sendto()Для обёрток в стиле sendto проследите указатель адреса и длину после преобразования языком или средой выполнения. - Не диагностируйте DNS или маршрутизацию, пока не подтверждено наличие корректного адреса назначения в локальном вызове.
Ссылки
- Oracle Solaris: каталог errno intro(2)
- POSIX: назначение sendto() и семантика соединения
- POSIX: правила domain, type и protocol для socket()
Нужно найти другой код? Найти другой код состояния или ошибки.