我有一个套接字,我想连接时超时,以便我可以取消整个操作,如果它无法连接,但它也想使用生成文件的套接字,不需要超时。Python套接字连接超时
有没有一个简单的方法来做到这一点,或者这将是一件困难的事情吗?
是否蟒蛇允许超时复位后连接,这样我可以使用的makefile,仍然有套接字连接超时
我有一个套接字,我想连接时超时,以便我可以取消整个操作,如果它无法连接,但它也想使用生成文件的套接字,不需要超时。Python套接字连接超时
有没有一个简单的方法来做到这一点,或者这将是一件困难的事情吗?
是否蟒蛇允许超时复位后连接,这样我可以使用的makefile,仍然有套接字连接超时
你只需要在尝试connect()
之前使用socket settimeout()
方法,请注意连接后必须settimeout(None)
将套接字设置为阻塞模式,这对于生成文件是必需的。 这里是我使用的代码:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(10)
sock.connect(address)
sock.settimeout(None)
fileobj = sock.makefile('rb', 0)
如果使用python2.6的更新,它的方便使用socket.create_connection
sock = socket.create_connection(address, timeout=10)
sock.settimeout(None)
fileobj = sock.makefile('rb', 0)
对unix socket没什么帮助 – Pierrot 2018-03-09 00:17:55
有关信息,超时必须以秒为单位。 – 2016-03-29 14:27:12