2011-09-28 167 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