| Предыдущий | Следующий |
| EALREADY | ESTALE |
EINPROGRESS
Ожидаемый асинхронный ход неблокирующего подключения
EINPROGRESS часто является нормальным промежуточным результатом, а не окончательной ошибкой подключения. Solaris приводит в качестве примера неблокирующий connect(): операция требует времени, поэтому вызов возвращает управление, пока установление подключения продолжается.
Это состояние отличается от EALREADY. EINPROGRESS сообщает, что асинхронная операция была начата; EALREADY может сообщить о новой попытке, выполненной пока операция всё ещё не завершена. Событийным клиентам требуется отдельное состояние connecting для представления этого интервала.
Обработка незавершённой операции
- Зарегистрируйте сокет в механизме готовности/завершения, используемом программой, и отдельно храните крайний срок подключения.
- После уведомления о завершении получите окончательный статус подключения, прежде чем помечать сокет как подключённый.
- Не позволяйте путям отправки/приёма считать конечную точку установленной только потому, что первоначальный
connect()вернул управление.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.