我正在使用data = sock.recv(buffer_size)
从服务器检索数据。目前服务器遇到了一些问题(我无法控制),导致在收到响应之前偶尔会有很长的等待时间。
响应通常几乎是即时的,导致我收到所需的数据。然而,最近由于服务器问题,只要有很长的等待时间,我最终会收到来自服务器的错误消息。当发生这种情况时,我必须重新发送相同的请求。
我的问题是sock.recv()
通话等待的时间太长。我需要做的只是等待几秒钟的数据,如果没有收到,我将重新发送数据请求。
所以我的问题是,我可以以某种方式限制sock.recv()
等待数据的时间吗?如果我在指定的时间范围内没有收到数据,我不想终止连接,我只是想知道已达到时间限制,以便我可以做其他事情。
答案 0 :(得分:3)
使用socket.settimeout()
方法
了解更多信息,请访问http://docs.python.org/library/socket#socket.socket.settimeout