2011-09-28 172 views
3

我有一个使用UDP sendto/recvfrom和socket.MSG_DONTWAIT标志的Python应用程序。在Linux和Mac OS X中,这工作得很好。但是,此标志在Windows环境中不存在。Python socket问题:Windows中的socket.MSG_DONTWAIT

什么是Windows中的等效标志?或者,我怎样才能在Windows中执行非阻塞sendto/recvfrom?

回答

3

socket.setblocking(False)在任何平台上将您的套接字切换到非阻塞模式。在创建套接字时调用一次,并且可以删除所有MSG_DONTWAIT标志。

如果您需要在阻塞和非阻塞I/O(通常不是这种情况)之间切换,请每次要在这两者之间切换时调用socket.setblocking