如何设置超时时间以避免TimeoutError()异常在Python中发生
发布时间:2024-01-12 04:27:01
在 Python 中,可以使用 socket 模块的 settimeout() 方法来设置超时时间,避免 TimeoutError 异常的发生。下面是设置超时时间的示例代码:
import socket
# 创建一个 socket 对象
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置超时时间为 5 秒
timeout = 5
sock.settimeout(timeout)
# 尝试连接远程服务器
try:
sock.connect(("example.com", 80))
print("连接成功")
except socket.timeout:
print("连接超时")
except socket.error as e:
print("连接错误:", e)
# 关闭连接
sock.close()
在上面的例子中,我们创建了一个 socket 对象,并设置了 timeout 变量为 5 秒钟。然后,我们尝试连接一个远程服务器(这里使用的是 example.com),如果在 5 秒钟内连接完成,则打印 "连接成功",如果超时,则打印 "连接超时",如果发生连接错误,则进行异常捕获并打印错误信息。
需要注意的是,这里设置的是连接超时时间和读取超时时间。如果想要只设置连接超时时间或只设置读取超时时间,可以使用不同的方法:
- 只设置连接超时时间:调用 sock.settimeout(timeout) 方法,并传入连接超时时间;
- 只设置读取超时时间:调用 sock.settimeout() 方法,并传入读取超时时间;
- 同时设置连接超时时间和读取超时时间:调用 sock.settimeout(timeout) 方法,并传入连接超时时间,然后在实际读取数据时,使用 sock.settimeout(timeout) 方法单独设置读取超时时间。
以上就是设置超时时间以避免 TimeoutError 异常的方法和示例代码。
