Python 套接字接收-有限的等待时间

Python 套接字接收-有限的等待时间,python,sockets,Python,Sockets,我正在使用data=sock.recv(缓冲区大小)从服务器检索数据。目前服务器存在一些问题(我无法控制这些问题),导致在收到响应之前偶尔需要等待很长时间 响应通常几乎是即时的,导致我收到所需的数据。然而,最近由于服务器问题,每当有很长的等待时间时,我最终会收到服务器返回的错误消息。当这种情况发生时,我必须重新发送相同的请求 我的问题是,sock.recv()调用等待的时间太长。我需要做的只是等待数据几秒钟,如果没有收到任何信息,我将重新发送数据请求 所以我的问题是,我能不能限制sock.rec

我正在使用
data=sock.recv(缓冲区大小)
从服务器检索数据。目前服务器存在一些问题(我无法控制这些问题),导致在收到响应之前偶尔需要等待很长时间

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

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


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

使用
socket.settimeout()
方法

有关更多信息,请访问

socket。setsockopt(SOL\u socket,SO\u RCVTIMEO,timeout)
也可以是一个选项。在Python中不太受欢迎,但在使用另一种语言时最好知道。