| Предыдущий | Следующий |
| EOWNERDEAD | EPROTO |
ENOTCONN
Предварительное условие состояния для операции не выполнено
ENOTCONN возвращается, когда запрошенная операция с данными требует состояния соединения, которого нет у транспортной конечной точки. Solaris также отмечает случай дейтаграмм: при отправке без установленного удалённого узла и без указания назначения транспорту некуда отправить сообщение.
Не следует диагностировать код как «удалённый узел выключен», не проверив сначала локальное состояние сокета. ECONNREFUSED описывает активный отказ во время установления соединения; ENOTCONN может возникнуть до того, как допустимая попытка соединения вообще установит удалённую сторону.
Проверки состояния для ENOTCONN
- Запишите отказавшую операцию и режим сокета: с установлением соединения или без него.
- Проверьте результат предшествующего
connect(); для неблокирующего connect соединение должно быть подтверждено до операций, требующих установленной связи. - Для несвязанного сокета дейтаграмм убедитесь, что операция отправки передаёт адрес назначения, ожидаемый API.
Ссылки
- Oracle Solaris: каталог errno intro(2)
- POSIX: условия ошибок connect()
- POSIX: назначение sendto() и семантика соединения
Нужно найти другой код? Найти другой код состояния или ошибки.