-1

サーバー接続を確認して、利用可能かどうかをユーザーに通知したい..

pkgまたはmsgをサーバーに送信する方法(SQLサーバーではありません。サーバーにはいくつかのサービスが含まれています)...

事前にt​​hnx..

4

2 に答える 2

3

ファイアウォールが ICMP パケットまたは特定のポートをブロックする可能性はすべてありますが、サービスが実行されていることを保証する唯一の方法は、そのサービスを使用する何かを行うことです。

select * from sysibm.sysdummy1たとえば、JDBC サーバーの場合、DB2などの非破壊的な SQL クエリを実行できます。HTTP サーバーの場合は、index.htm の GET パケットを作成できます。

実際にサービスを制御できる場合、これらのリクエストを処理するための特別なサブサービスを作成するのは簡単なことです (CHECK パケットを介して送信し、OKAY 応答を返すなど)。

そうすれば、考えられるすべてのファイアウォールの問題を回避でき、テストは真のエンド ツー エンドのものになります。PING と traceroute は、マシンにアクセスできるかどうか (ファイアウォールが許可されている場合) を知ることができますが、サービスが機能しているかどうかはわかりません。

Take this from someone who's had to battle the network gods in a corporate environment where machines are locked up as tight as the proverbial fishes ...

于 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 に答える