Вопрос о сокетах Python: socket.MSG_DONTWAIT в Windows - PullRequest
3 голосов
/ 29 сентября 2011

У меня есть приложение Python, которое использует UDP sendto / recvfrom с флагом socket.MSG_DONTWAIT.В Linux и Mac OS X это работает просто отлично.Тем не менее, этот флаг не существует в среде Windows.

Что такое эквивалентный флаг в Windows?Кроме того, как я могу сделать неблокирующие sendto / recvfrom в Windows?

1 Ответ

4 голосов
/ 29 сентября 2011

socket.setblocking(False) переводит ваш сокет в неблокирующий режим на любой платформе.Вызывайте это один раз при создании сокета, и вы можете удалить все флаги MSG_DONTWAIT.

Если вам нужно переключиться между блокирующим и неблокирующим вводом / выводом (что обычно не так), вызывайте socket.setblocking каждыевремя, когда вы хотите переключиться между этими двумя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...