Python套接字问题:Windows中的socket.MSG_DONTWAIT
我有一个用Python写的应用程序,它使用UDP的sendto和recvfrom功能,并且加上了socket.MSG_DONTWAIT这个标志。在Linux和Mac OS X系统上,这个功能运行得很好。但是,在Windows环境下,这个标志是不存在的。
那么,在Windows中有什么类似的标志呢?或者,我该如何在Windows中实现非阻塞的sendto和recvfrom呢?
1 个回答
5
socket.setblocking(False)
这个命令可以把你的套接字(socket)设置为非阻塞模式,适用于所有平台。你只需要在创建套接字的时候调用一次这个命令,就可以去掉所有的 MSG_DONTWAIT
标志。
如果你需要在阻塞和非阻塞输入输出之间切换(不过通常情况下不需要这样做),那么每次想要切换的时候都要调用 socket.setblocking
。