telnet プロセスが Java プログラムによって作成されている場合、telnetを使用して HPUX ホストにログインできません。
コマンド ライン (bash から) から HPUX ホストに telnet で接続すると、ログインしてセッションを使用できます。
Java から telnet プロセスを起動すると、奇妙なことが起こります。ユーザー名の入力を求められ、送信します。パスワードのプロンプトも表示されます。しかし、何らかの理由で telnet サーバーはパスワードを待ちません。送信される前にセッションを終了します。
Wireshark でのやり取りを見ると、telnet クライアントがパスワード プロンプトに対して ACK を送信するとすぐに、サーバーが FIN パケットを送信し、初期化セッションを終了することがわかります。
パスワード プロンプトに至るまでのハンドシェイクで確認できる違いの 1 つは、サーバーが端末の速度を要求することです。コマンド ラインから telnet を実行すると、送信される端末速度は 38400,38400 になります。Java から telnet を実行している場合、端末速度は 0,0 です。
telnet クライアントのソース コードを調べたところ、telnet クライアントから送信された「端末速度」のソースの 1 つは、cfgetospeed()/cfgetispeed() API の出力であることがわかりました。thisによると、0 ボーレートの意味は「ハングアップ」であり、HPUX telnetd プロセスがそれを解釈しているように見えます。
Linux Fedora Core 6 から実行しています。