socket python:recvfrom

时间:2015-07-01 16:13:21

标签: python sockets recvfrom

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

1 个答案:

答案 0 :(得分:4)

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