| Предыдущий | Следующий |
| WSAEMFILE | WSAEINPROGRESS |
WSAEWOULDBLOCK
WSAEWOULDBLOCK означает, что операция Winsock с неблокирующим сокетом не может немедленно продолжиться. Обычно это уведомление о состоянии, а не признак неисправности соединения или сокета.
Типичные ситуации
Код часто возвращается функцией connect пока неблокирующее соединение ещё устанавливается, функцией recv когда во входной очереди нет данных, и функцией accept когда нет ожидающего клиента. Нельзя повторять операцию в плотном цикле.
Что делать
- Для ожидающего завершения
connectдождитесь уведомления о завершении, зарегистрированного для сокета, напримерselect,WSAEventSelectилиWSAAsyncSelect. - При приёме данных или подключений дождитесь, пока механизм готовности сообщит о наличии данных или ожидающего соединения.
- Храните состояние операции в приложении; неблокирующий вызов может потребоваться продолжить позднее.
Microsoft: connect · Microsoft: recv
Нужно найти другой код? Найти другой код состояния или ошибки.
