我想知道python中的socket.recvfrom是否是阻塞函数?我无法在documentation中找到答案 如果不是,如果没有收到什么会返回什么?一个空字符串'' ? 在另一种情况下,如果事实上它是阻塞的,我怎么能把它作为解锁功能呢?我听说过settimeout,但我不知道它是否真的是正确的解决方案。
答案 0 :(得分:4)
默认情况下,它是阻止的。它可以通过socket.setblocking(0)
或(等效)socket.settimeout(0)
变为非阻止。在这种情况下,如果没有任何东西可以接收它将抛出socket.error
异常。请参阅文档:https://docs.python.org/2/library/socket.html#socket.socket.setblocking