欢迎访问宙启技术站
智能推送

如何设置超时时间以避免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 异常的方法和示例代码。