套接字recv - 有限的等待时间

时间:2015-11-19 07:46:27

标签: python sockets

我正在使用data = sock.recv(buffer_size)从服务器检索数据。目前服务器遇到了一些问题(我无法控制),导致在收到响应之前偶尔会有很长的等待时间。

响应通常几乎是即时的,导致我收到所需的数据。然而,最近由于服务器问题,只要有很长的等待时间,我最终会收到来自服务器的错误消息。当发生这种情况时,我必须重新发送相同的请求。

我的问题是sock.recv()通话等待的时间太长。我需要做的只是等待几秒钟的数据,如果没有收到,我将重新发送数据请求。

所以我的问题是,我可以以某种方式限制sock.recv()等待数据的时间吗?如果我在指定的时间范围内没有收到数据,我不想终止连接,我只是想知道已达到时间限制,以便我可以做其他事情。

1 个答案:

答案 0 :(得分:3)

使用socket.settimeout()方法

了解更多信息,请访问http://docs.python.org/library/socket#socket.socket.settimeout