Как реализовать MSG_DONTWAIT в вызове recv

Я реализую программу симуляции сервера и хочу проверить, было ли что-либо получено через recv из TCP / IP-сокета без ожидания. Когда я устанавливаю флаг MSG_DONTWAIT, recv возвращает длину -1 и ошибочно «Ресурс временно доступен». вызов работает, когда используется флаг MSG_WAITALL.

3
задан 23 April 2013 в 18:34

1 ответ

Это не ошибка, а ожидаемое поведение. Документация MSG_DONTWAIT гласит:

Если данные недоступны, то вместо блокировки немедленно вернитесь с ошибкой EAGAIN.

Это означает, что вы должны ждать и справляться с такой ситуацией.

Проверьте здесь для ссылки и здесь для аналогичного обсуждения.

0
ответ дан 23 April 2013 в 18:34

Другие вопросы по тегам:

Похожие вопросы: