【问题标题】:How do you determine the server disconnection (case cut off cable ethernet)怎么判断服务器断线(机箱断线以太网)
【发布时间】:2015-01-09 19:39:15
【问题描述】:

我编写代码来确定与远程服务器 mysql 的连接。这是我的代码:

import MySQLdb
def connect_remote():
   try:
       db = MySQLdb.connect("192.168.1.7", "root_a","","luan_van")
       return 1
   except MySQLdb.OperationalError, e:
       if e[0] == 2003:
           return 0
while 1:
   x = connect_remote()
   print x

如果我在远程服务器(192.168.1.7)中“启动或停止所有服务”wampserver,它运行良好。

现在我假设切断电缆以太网连接服务器,代码停止。如何识别这种情况?

我不明白禁用 mysql 和切断电缆之间的区别。

【问题讨论】:

  • '我不明白禁用mysql和切断电缆之间的区别':首先从远程堆栈'立即'返回一个错误,说端口上没有任何东西在监听,其次需要长时间等待以确保服务器没有可用的路由(一条路由可能位于卫星和两个调制解调器链路后面)。
  • 好的,谢谢您的评论

标签: python mysql python-2.7 python-3.x mysql-python


【解决方案1】:

您可以区分的唯一三种情况是:

  1. 服务器在网络上,但主动拒绝 MySQL 端口上的连接
  2. 服务器在网络上,但对 MySQL 端口上的连接尝试完全没有响应
  3. 服务器没有响应任何网络流量

您无法确定比这三种情况更详细的情况,区分 2 和 3 需要额外的工作,例如 ping 服务器以查看它是否有响应。

对于您的具体问题,正在连接但无响应的服务器(即操作系统崩溃,上述情况 3)与被切断的电缆之间没有明显的区别。您无法分辨出与远程主机的区别。

【讨论】:

    猜你喜欢
    • 2017-02-11
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多