如果服务器暂时不可用,python无法从客户端重新启动套接字连接

2021-02-25 22:15:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行一个Graphite服务器来监控远程位置的仪器。我有一个“永久的”ssh隧道,从我的服务器(热爱autosh)到机器,将它们的本地端口映射到服务器的本地端口。这样做很好,数据可以毫无麻烦地通过。然而,我们使用一个不稳定的卫星连接到这些地点,这是相当有规律的。我在运行python并使用socket向Graphite服务器发送数据包的工具上运行一个“数据爬虫”。问题是,如果链接暂时中断(或者服务器重新启动,主要是为了测试),我无法重新建立到服务器的连接。我捕捉错误,然后运行插座.关闭(),然后重新打开,但我无法重新建立连接。如果我退出python程序并重新启动它,那么连接就正常了。有什么办法可以“刷新”我的插座连接吗?

1条回答
网友
1楼 ·

如果没有代码示例,很难正确回答这个问题。但是,听起来您可能试图重用一个已关闭的socket,这是不可能的。在

如果套接字已关闭(或遇到错误),则必须使用新的套接字对象重新创建新连接。要实现这一点,远程服务器必须能够在其accept()循环中处理多个客户端连接。在

相关问题