-1

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

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

thnx 提前..

4

2 回答 2

3

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

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

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

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

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

于 2008-12-13T08:17:32.527 回答
0

如果您可以打开一个端口但不想使用 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 并活着返回

于 2008-12-13T11:58:15.810 回答