• ベストアンサー

TELNETプログラミング

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

  • Java
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • 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

  • TelNetプログラミング

    今、Telnetを使ったプログラムを作成中なのですが、ネット上にサンプルになるようなソースっておちていないものなのでしょうか? 検索してみたのですが私が求めているような感じのものが全然見当たらなくて…。 ログインの仕方とかコマンドの投げ方などのサンプルが欲しいのですが、ご存知の方いらっしゃいましたら教えて下さい。 どのAPIを使って実装するのかも検討つきません(涙) 下記のようなものを使って実装するのが一般的なのでしょうか? org.apache.commons.net.telnet.TelnetClient; org.apache.commons.net.telnet.TerminalTypeOptionHandler; org.apache.commons.net.telnet.EchoOptionHandler; org.apache.commons.net.telnet.SuppressGAOptionHandler; org.apache.commons.net.telnet.InvalidTelnetOptionException; お薦めのサイト・著書がありましたら教えていただきたいです。 宜しくお願いします。

    • ベストアンサー
    • Java
  • telnetの仕組みについて

    telnetの仕組みがいまいち分かりません。 自分のPC:リモートする方 相手のPC:リモートされる方 として 仮想端末に接続して自分のPCでコマンドを打つと思うのですが(telnetはコマンドプロンプトから起動します。また専用のソフトを使ってもCUIですよね) この打っているのは相手側のPCがwindowsなら相手側のコマンドプロンプトに打っているのと同様なのでしょうか。またUNIXとかならシェルに打っているのと同様なのでしょうか。

  • delphiでtelnet(indy)

    IndyのTIdTelnetコンポーネントを使ってtelnetをするプログラムを作っているのですが、プロンプト待ちをするようなプログラムがよく分りません。 コマンドを「ls」などをうって、処理が終わりプロンプトが返ってくるまで処理を止める・・・・というようなのは、どのようにすればできるでしょうか?

  • シェルスクリプトとphpを使ったプログラミングについて

    UNIXサーバで、現在、シェルスクリプトやphpを使ってプログラムを書いています。 今は「csh cmd ファイル名」という形でシェルスクリプトを実行しています。このままではプロンプト画面で味気ないので次のようにしたいのですが、やり方が分りません。 まず、phpやhtmlで作成したファイル提出画面にてファイルを提出してもらいます、そして、それを受け取ります。その時例えば送信ボタンを押すと思うのですが、そのボタンを押したらファイル名を受け取り「csh cmd ファイル名」が実行されるといふうにしたいのです。何かいい方法があれば教えて頂きたいです。phpでなくてもいいので、お願いします。

    • ベストアンサー
    • PHP
  • Telnetをログアウトしても処理を続けたい

    PC1(AIX UNIX)からPC2(Win2000 sp2)へtelnetでログインし、PC2上のバッチファイルを実行させようとしています。 一連の作業を自動化させたいため、PC1上のシェルスクリプトでバッチファイルを起動させているのですが、ログアウトするとバッチファイルのプロセスも切れてしまいます。 シェルスクリプトはsleepコマンドのため、自動的にexitがかかってしまい、長い処理や処理時間の読めないプログラムを走らせることができません。UNIX系のnohupのようなことをWindows上で行うことはできないのでしょうか? 色々と調べても情報がなかったので、あきらめかけてます。ご存じの方、またご経験のある方がいましたら教えて下さい。

  • telnetクライアントを模したプログラムで...

    こんにちは、趣味でプログラミングをしているものです。 「基礎からわかる TCP/IP Java ネットワークプログラミング 」 という本に載っている 120行程度の telnetクライアントを模した プログラムをコマンドプロンプトから実行して 自分が登録しているインターネットサービスプロバイダの メールサーバにメールを送ってみようと試みたのですが、 HELLO コマンドを入力したら 502 5.5.2 Error: command not recognized と表示されてしまいました。 ------------------------------------------------------------ その際、検索によって表示された以下のサイトを 参考にさせていただきました。 (a) 「 MEMORVA 」 http://memorva.jp/memo/windows/telnet_smtp_pop.php (b) smtp コマンド http://www.webjp.ne.jp/manual/iServe/superV/28SMTP_code.html ------------------------------------------------------------- 以下に記しているのがコマンドプロンプトでの入力と表示です。 C:\java\T2>java T2 (サービスプロバイダのSMTPサーバー名) 25 220 ( サーバー名と思われる別の名前 )-----(1) HELLO (1) の名前 502 5.5.2 Error: command not recognized QUIT 221 2.0.0 Bye --- ctrl + c 入力 --- C:\java\T2> ------------------------------------------------------------ T2 を実行させるときの args[0] と (1) が異なるのですが それが、HELLO コマンドを受け付けない原因なのでしょうか? どのようにすれば上手くメールを送信できるのでしょうか? ご存知の方、教えていただけないでしょうか? よろしくお願いします。

  • TELNETについて

    サーバーはさくら(スタンダードプラン)を使っており下記URLを参考に以下の手順で実行しました。 http://support.sakura.ad.jp/support/manual/rs/tech_telnet.shtml#login スタート→ファイル名を実行→cmd→プロンプトにtelnet アカウント.sakura.ne.jp ※osはwinxpです。 としエンターを押すと接続中となるのですがホストへ接続できませんでした。ポート番号23:接続に失敗しました。 どうすれば接続できるでしょうか?具体的な対策案などアドバイス頂けますと幸いです。

  • telnetの自動シェルバッチを作成したい

    UNIXは不得意のため、とても困っています。 是非、アドバイスをお願いします。m(_S_;)m えっと。windowsでいえば、ブラウザにURLを設定するようなことを UNIX上で、telnetを使って自動バッチを作成したいと思っています。 HTTP要求のURL: http:xx.xx.xx.xx:7001/TEST/test.srv?MODE=0 自分で書いてみたシェル ------------------------------------------------- sleep 2; echo ${USER_ID} sleep 1 echo ${PASSWORD} sleep 1 echo "GET /TEST/test.srv?MODE=0" sleep 1 echo "exit" | telnet ${SERVER_IP} ${WEB_POOT} ------------------------------------------------- 下記では、「ファイルもディレクトリもありません。」の エラーが出てしますます。。 でもブラウザより上記のURLを入れて実行するぶんには 正常にhtmlを返してくれます。(バッチではhtmlを返さなくても可) お手数をおかけしますが、どなたかもしアドバイス等が 御座いましたら、どうか宜しくお願い致します。

  • unixからwindowsへリモートシェルを実行したい

    unixからwindows2000serverのプログラム(VBのexeファイル)を リモートで実行したいのですが、何か良い方法がありました教えて下さい。 また、unix側、windows側でインストールすべきS/W等がありました教えて頂けますでしょうか。 よろしくお願い致します。 参考までに、以下の内容は自分で調査しましが、実現には至りませんでした (何かが間違ってるのかもしれませんが・・・)  ・SSH(unix・winそれぞれに設定方法がよくわからない)  ・unixからtelnetログイン(telnetログイン・UID/PASSWD入力・winプログラム   実行を自動化(シェル化)の仕方がわからない)  ・unixからrshを実行(windows2000ではrshを受付けない?)

  • Windows7でのtelnet接続について

    Windows7パソコンでのtelnet接続について教えてください。 異なるセグメント間ではtelnetはできないのでしょうか。 10.4.xxx.xxx から 10.6.xxx.xxx に接続しようとしています。 telnetを実行したのですが、下記メッセージが表示されてしまいました。 「ポート番号 23:接続に失敗しました。」 パソコン側では下記の設定をしています。 Windows の機能の有効化または無効化で「Telnetクライアント」と「Telnetサーバー」をチェック Windowsファイアウォールによるプログラムの許可で「Telnet」をチェック サービス一覧で「Telnet」を開始 以上よろしくお願いします。

専門家に質問してみよう