我试图测试连接失败,不幸的是,如果主机的 IP 地址被防火墙保护,它并没有失败。
这是代码:
def get_connection(self, conn_data):
rtu, hst, prt, usr, pwd, db = conn_data
try:
self.conn = pgdb.connect(host=hst+":"+prt, user=usr, password=pwd, database=db)
self.cur = self.conn.cursor()
return True
except pgdb.Error as e:
logger.exception("Error trying to connect to the server.")
return False
if self.get_connection(conn_data):
# Do stuff here:
如果我尝试连接到已知服务器但输入的用户名不正确,则会触发异常并失败。
但是,如果我尝试连接到没有响应(防火墙)的机器,它永远不会通过self.conn = pgdb.connect()
当用户输入错误的 IP 地址时,如何等待或测试超时而不是让我的应用程序看起来挂起?