6

我想知道python中的socket.recvfrom是否是一个阻塞函数?我在文档中找不到我的答案 如果不是,如果没有收到什么会返回什么?一个空字符串 '' ?在另一种情况下,如果实际上它是阻塞的,我该怎么做才能将它作为一个解锁功能?我听说过settimeout但我不知道它是否真的是正确的解决方案。

4

1 回答 1

7

默认情况下它是阻塞的。socket.setblocking(0)它可以通过or (equivalent)变成非阻塞socket.settimeout(0)。在这种情况下,如果没有任何东西可以接收,它将抛出socket.error异常。请参阅文档:https ://docs.python.org/2/library/socket.html#socket.socket.setblocking

于 2015-07-01T16:17:39.477 回答