我想检查我的服务器连接以了解它是否可用以通知用户..
那么如何将 pkg 或 msg 发送到服务器(它不是 SQL 服务器;它是一个包含一些服务的服务器)......
thnx 提前..
我想检查我的服务器连接以了解它是否可用以通知用户..
那么如何将 pkg 或 msg 发送到服务器(它不是 SQL 服务器;它是一个包含一些服务的服务器)......
thnx 提前..
由于防火墙阻止 ICMP 数据包或特定端口的所有可能性,保证服务正在运行的唯一方法是做一些使用该服务的事情。
例如,如果它是 JDBC 服务器,您可以执行非破坏性 SQL 查询,例如select * from sysibm.sysdummy1
DB2。如果它是 HTTP 服务器,您可以为 index.htm 创建一个 GET 数据包。
如果您确实可以控制该服务,那么创建一个特殊的子服务来处理这些请求是一件简单的事情(例如您通过 CHECK 数据包发送并返回 OKAY 响应)。
这样,您就可以避免所有可能的防火墙问题,并且测试是真正的端到端测试。PING 和 traceroutes 将能够判断您是否可以访问机器(防火墙允许),但它们不会告诉您您的服务是否正常运行。
从一个不得不在公司环境中与网络之神战斗的人那里得到这个,在这个环境中机器被锁得像众所周知的鱼一样严密......
如果您可以打开一个端口但不想使用 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 并活着返回