Что означает код errno 150 (EINPROGRESS)?

 
Также может означать:
КонстантаТипОС
ERROR_SYSTEM_TRACEОшибка WindowsWindows
INVALID_WORK_QUEUE_ITEMКод BSODWindows
Предыдущий Следующий
EALREADY ESTALE

EINPROGRESS

Ожидаемый асинхронный ход неблокирующего подключения

EINPROGRESS часто является нормальным промежуточным результатом, а не окончательной ошибкой подключения. Solaris приводит в качестве примера неблокирующий connect() : операция требует времени, поэтому вызов возвращает управление, пока установление подключения продолжается.

Это состояние отличается от EALREADY. EINPROGRESS сообщает, что асинхронная операция была начата; EALREADY может сообщить о новой попытке, выполненной пока операция всё ещё не завершена. Событийным клиентам требуется отдельное состояние connecting для представления этого интервала.

Обработка незавершённой операции

  • Зарегистрируйте сокет в механизме готовности/завершения, используемом программой, и отдельно храните крайний срок подключения.
  • После уведомления о завершении получите окончательный статус подключения, прежде чем помечать сокет как подключённый.
  • Не позволяйте путям отправки/приёма считать конечную точку установленной только потому, что первоначальный connect() вернул управление.

Ссылки


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