Что означает код errno 133 (EISCONN)?

 
Также может означать:
КонстантаТипОС
ERROR_IS_JOIN_TARGETОшибка WindowsWindows
EOWNERDEADerrnoWindows
SETUP_FAILUREКод BSODWindows
Предыдущий Следующий
EOVERFLOW EOWNERDEAD

EISCONN

Конечная точка уже имеет состояние соединения

EISCONN относится к состоянию сокета, а не достижимости. Solaris описывает два важных случая: повторный запрос connect для уже подключённой конечной точки либо sendto()/sendmsg() передаёт назначение для конечной точки, соединение которой уже определяет удалённый узел.

Это отличается от EALREADY, где неблокирующая операция всё ещё выполняется, и от ENOTCONN, где операция, требующая соединения, не имеет установленного узла. Поэтому проверка перехода состояния и точного вызова API полезнее проверки маршрутизаторов или политики брандмауэра.

Что проверять в коде сокетов

  • Трассируйте создание сокета, каждый успешный или ожидающий connect()и любое повторное использование дескриптора после пула соединений.
  • Для отправки дейтаграмм или сообщений проверьте, подключило ли приложение сокет намеренно; подключённый сокет может использовать операции send без указания назначения при каждой отправке.
  • В многопоточном коде установите, какой поток изменил состояние сокета до ошибочного вызова.

Ссылки


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