Что означает код errno 107 (ENOTCONN) в Linux?

 
Также может означать:
КонстантаТипОС
ERROR_DISK_CHANGEОшибка WindowsWindows
ECONNREFUSEDerrnoWindows
PROCESS1_INITIALIZATION_FAILEDКод BSODWindows
Предыдущий Следующий
ECONNABORTED ECONNREFUSED

ENOTCONN

ENOTCONN: операция требует установленного соединения

ENOTCONN означает, что send, receive, shutdown или другая операция была вызвана для сокета без действующего peer connection.

Для datagram-сокета проверьте, требует ли конкретный вызов установленного peer или должен получать адрес назначения отдельно; это позволяет отличить ошибку состояния от ошибки маршрута.

Причиной может быть отсутствие connect, незавершённый nonblocking connect, прежний disconnect или использование другого socket FD после замены объекта.

Что проверить

  • Запишите socket FD, local/peer address, тип сокета и последний подтверждённый переход состояния.
  • Для неблокирующего connect дождитесь completion и проверьте SO_ERROR до передачи данных.
  • Исключите race между shutdown/close и рабочим потоком, продолжающим использовать сокет.
  • Не исправляйте ENOTCONN бесконечным retry: восстановите соединение отдельной управляемой операцией.

Ссылки


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