3
我想知道是否在Python中的socket.recvfrom是一個阻塞函數?我在documentation 找不到我的答案如果不是,如果沒有收到什麼會返回什麼?一個空字符串''? 在另一種情況下,如果實際上它是阻塞的,我該怎麼做才能將它作爲暢通功能?我聽說settimeout,但我不知道它是否真的是正確的解決方案。socket python:recvfrom
謝謝。 Xavier
我想知道是否在Python中的socket.recvfrom是一個阻塞函數?我在documentation 找不到我的答案如果不是,如果沒有收到什麼會返回什麼?一個空字符串''? 在另一種情況下,如果實際上它是阻塞的,我該怎麼做才能將它作爲暢通功能?我聽說settimeout,但我不知道它是否真的是正確的解決方案。socket python:recvfrom
謝謝。 Xavier
默認情況下它是阻塞的。它可以通過socket.setblocking(0)
或(等同於)socket.settimeout(0)
變成非阻塞。在這種情況下,如果沒有收到任何東西,將會拋出socket.error
異常。查看文檔:https://docs.python.org/2/library/socket.html#socket.socket.setblocking