我有一個套接字,我想連接時超時,以便我可以取消整個操作,如果它無法連接,但它也想使用生成文件的套接字,不需要超時。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