我有套接字连接:
# Create a TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Bind the socket to the address given on the command line
sock.connect((host, port))
那么,如何设置超时参数并在超时到来时调用异常?
login = login.encode()
sock.sendall(login)
sock.recv(buf).decode("utf-8")
答案 0 :(得分:0)
您可以参考套接字文档:
socket.settimeout(value)
" 在阻止套接字操作时设置超时。 value参数可以是表示秒的非负浮点数,也可以是None。如果给出非零值,则如果在操作完成之前已超过超时时间段值,则后续套接字操作将引发超时异常。如果给出零,则套接字处于非阻塞模式。如果给出None,则套接字将进入阻塞模式。
所以你可以用:
指定它sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(3) # 3 Seconds timeout.
这样,当连接超过3秒时,会抛出 socket.timeout ,并且您可以在try-catch块中处理捕获socket.timeout的异常。