• ベストアンサー

TELNETプログラミング

今、Telnetを使用しUNIXサーバのシェルを起動づるプログラムを作成中なのですが、インターネットを検索した所、下記に辿りつきました。下記を参考にし作成していましたが、60行目のプロンプト出力待ちで実行中まま61行目に処理が移りません。 全く原因がわかりません。 わかる方がおられましたら宜しくお願い致します。 http://www.visards.co.jp/java/net/net05.html

質問者が選んだベストアンサー

  • ベストアンサー
  • dyna_1550
  • ベストアンサー率34% (122/353)
回答No.2

あとはデバックの方法論だと思います。 随所に system.out でも入れて確認されてはいかがですか。 例えば、9行目の引数の message だとか、21行目の buffer.toString() などを確認してみてはいかがでしょう。

kouchan_s
質問者

お礼

解決しました。ありがとうございました。

その他の回答 (1)

  • dyna_1550
  • ベストアンサー率34% (122/353)
回答No.1

ソースを見ると、以下のコードで止まっているということですね。 60 readMessage(reader, ".*" + prompt); readMessageメソッドでは、パターンにマッチするまで無限ループで 待つようになっています。パターンは、第二引数の ".*" + prompt です。 promptは、37行目に定義されており、"hostname \\d+> $" となってます。 普通にtelnetして、これと同じ出力が表示されますか?

kouchan_s
質問者

補足

ご回答ありがとうございました。 telnetを立ち上げプロンプトを確認致しました。 プロンプトは"hostname(ユーザ名):#"でしたので ご回答の通り第二引数のpromptに"hostname(ユーザ名):#" を入れましたが60行目の readMessage(reader, ".*" + prompt); で実行中になってしまいます。 プロンプトの確認の仕方が間違っているのでしょうか?。 ログインができていないのかプロンプトが間違って違うものと 認識されているのかがわかりません。 申し訳ございませんが宜しくお願い致します。

関連するQ&A