- ベストアンサー
TELNETプログラミング
今、Telnetを使用しUNIXサーバのシェルを起動づるプログラムを作成中なのですが、インターネットを検索した所、下記に辿りつきました。下記を参考にし作成していましたが、60行目のプロンプト出力待ちで実行中まま61行目に処理が移りません。 全く原因がわかりません。 わかる方がおられましたら宜しくお願い致します。 http://www.visards.co.jp/java/net/net05.html
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あとはデバックの方法論だと思います。 随所に system.out でも入れて確認されてはいかがですか。 例えば、9行目の引数の message だとか、21行目の buffer.toString() などを確認してみてはいかがでしょう。
その他の回答 (1)
- dyna_1550
- ベストアンサー率34% (122/353)
ソースを見ると、以下のコードで止まっているということですね。 60 readMessage(reader, ".*" + prompt); readMessageメソッドでは、パターンにマッチするまで無限ループで 待つようになっています。パターンは、第二引数の ".*" + prompt です。 promptは、37行目に定義されており、"hostname \\d+> $" となってます。 普通にtelnetして、これと同じ出力が表示されますか?
補足
ご回答ありがとうございました。 telnetを立ち上げプロンプトを確認致しました。 プロンプトは"hostname(ユーザ名):#"でしたので ご回答の通り第二引数のpromptに"hostname(ユーザ名):#" を入れましたが60行目の readMessage(reader, ".*" + prompt); で実行中になってしまいます。 プロンプトの確認の仕方が間違っているのでしょうか?。 ログインができていないのかプロンプトが間違って違うものと 認識されているのかがわかりません。 申し訳ございませんが宜しくお願い致します。
お礼
解決しました。ありがとうございました。