サーバー接続を確認して、利用可能かどうかをユーザーに通知したい..
pkgまたはmsgをサーバーに送信する方法(SQLサーバーではありません。サーバーにはいくつかのサービスが含まれています)...
事前にthnx..
サーバー接続を確認して、利用可能かどうかをユーザーに通知したい..
pkgまたはmsgをサーバーに送信する方法(SQLサーバーではありません。サーバーにはいくつかのサービスが含まれています)...
事前にthnx..
ファイアウォールが 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 ...
ポートを開くことはできるが、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 でリッスンし、生きて戻るだけです。