【问题标题】:How to check server connection如何检查服务器连接
【发布时间】:2010-09-26 18:29:56
【问题描述】:

我想检查我的服务器连接以了解它是否可用以通知用户..

那么如何将 pkg 或 msg 发送到服务器(它不是 SQL 服务器;它是一个包含一些服务的服务器)...

thnx in adcvance ..

【问题讨论】:

    标签: connection


    【解决方案1】:

    如果你可以打开一个端口但不想使用 ping(我不知道为什么,但是嘿)你可以使用这样的东西:

    import socket
    
    host = ''
    port = 55555
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    s.bind((host, port))
    s.listen(1)
    
    while 1:
        try:
            clientsock, clientaddr = s.accept()
            clientsock.sendall('alive')
            clientsock.close()
        except:
            pass
    

    这不过是一个简单的 python 套接字服务器监听 55555 并活着返回

    【讨论】:

      【解决方案2】:

      由于防火墙阻止 ICMP 数据包或特定端口的所有可能性,保证服务正在运行的唯一方法是执行使用该服务的操作。

      例如,如果它是 JDBC 服务器,您可以执行非破坏性 SQL 查询,例如 DB2 的select * from sysibm.sysdummy1。如果是 HTTP 服务器,你可以为 index.htm 创建一个 GET 数据包。

      如果您确实可以控制该服务,那么创建一个特殊的子服务来处理这些请求是一件简单的事情(例如您通过 CHECK 数据包发送并返回 OKAY 响应)。

      这样,您可以避免所有可能的防火墙问题,并且测试是真正的端到端测试。 PING 和 traceroute 将能够判断您是否可以访问机器(防火墙允许),但它们不会告诉您您的服务是否正常运行。

      从一个不得不在公司环境中与网络之神战斗的人那里得到这个,在这个环境中机器被锁得像众所周知的鱼一样严密......

      【讨论】:

        猜你喜欢
        • 2014-07-11
        • 1970-01-01
        • 1970-01-01
        • 2012-11-29
        • 2016-04-16
        • 1970-01-01
        • 1970-01-01
        • 2015-04-23
        • 1970-01-01
        相关资源
        最近更新 更多