gpt4 book ai didi

python - 如何在 python 的 socket recv 方法上设置超时?

转载 作者:IT老高 更新时间:2023-10-28 21:09:11 31 4
gpt4 key购买 nike

我需要在 python 的 socket recv 方法上设置超时。怎么做?

最佳答案

典型的方法是使用 select()等到数据可用或超时发生。只有在数据实际可用时才调用 recv()。为了安全起见,我们还将套接字设置为非阻塞模式,以保证 recv() 永远不会无限期阻塞。 select() 也可用于一次等待多个套接字。

import select

mysocket.setblocking(0)

ready = select.select([mysocket], [], [], timeout_in_seconds)
if ready[0]:
data = mysocket.recv(4096)

如果您有很多打开的文件描述符,poll()select() 的更有效替代方法。

另一种选择是使用 socket.settimeout() 为套接字上的所有操作设置超时,但我看到您在另一个答案中明确拒绝了该解决方案。

关于python - 如何在 python 的 socket recv 方法上设置超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2719017/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com