HULFTを使用しないHULFTポート番号の疎通確認


再現性のあるHULFT通信エラーが発生したとします。
HULFTに起因しないことを証明する(HULFT以外でポート30000のTCP通信を行う)には、本記事の技術が役に立ちます。
また、HULFTインストール前に正しくFireWallへ設定したことを確認することもできます。

※ 本記事のコマンド例では、ホスト名等は、下記としています。
    通信先ホスト名      remote-host
    HULFTのポートNo.    30000

※ 本記事で使用した各パッケージのバージョンは、下記の通りです。
    Windows PowerShell   2.0
    Bash           3.2.25
    Python          2.4.3


コマンドラインのTCPクライアント(Windows)

C:\>powershell                              ‥‥‥‥‥1)
Windows PowerShell
<略>
PS C:\>
PS C:\> tnc remote-host -Port 30000                   ‥‥‥‥‥2)
<略>
TcpTestSucceeded : True                          ‥‥‥‥‥3)

1) powershellを実行します。

2) 通信先ホスト名、通信先HULFTポートNo.を指定してtncコマンドを実行します。


3) [TcpTestSucceeded : True]が出力されれば、通信成功です。([False]なら失敗)





コマンドラインのTCPサーバ(Windows)

C:\>powershell                              ‥‥‥‥‥1)
Windows PowerShell
<略>
PS C:\> $tcp_srv = [System.Net.Sockets.TcpListener]30000        ‥‥‥‥‥2)
PS C:\> $tcp_srv.Start();                         ‥‥‥‥‥2)
PS C:\> cmd.exe /c "netstat.exe -ano|findstr 30000"            ‥‥‥‥‥3)
 TCP   0.0.0.0:30000    0.0.0.0:0        LISTENING   19308
PS C:\> $tcp_srv.Stop();                          ‥‥‥‥‥4)

1) powershellを実行します。

2) 2つのコマンドで、ポート30000を使用するTCPサーバを起動します。


3) ポート30000がLISTENINGとなっていることを確認します。


4) TCPサーバを停止します。





bashのTCPクライアント(Linux)

$ echo -n "xxxxx" > /dev/tcp/remote-host/30000             ‥‥‥‥‥1)
$ echo $?                                ‥‥‥‥‥2)
0                                     ‥‥‥‥‥3)
$

1) echoコマンドで任意の文字列を出力し、/dev/tcp/remote-host/30000へリダイレクトします。

2) echoコマンドの終了ステータスを確認します。


3) 終了ステータス=0であれば、通信成功です。





PythonのTCPサーバ(Linux)

$ python -m SimpleHTTPServer 30000                 ‥‥‥‥‥1)
Serving HTTP on 0.0.0.0 port 30000 ...
[Ctrl + C]                                ‥‥‥‥‥2)
Traceback (most recent call last):
<略>
KeyboardInterrupt
$

1) ポート30000にてLISNINGとなるTCPサーバを起動します。

2) [Ctrl + C]により、強制的に終了させます。








お問合せ