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