みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

vc++でtelnet

お世話になります。
現在、コマンドプロンプトでtelnetを起動し、ある特定のコマンドを投げている作業があります。特定のコマンドが、一つのパラメーターが違うだけなので、ボタンを押してそのコマンドを投げられるような画面を作って...と言われました。
CreateProcessを使って、cmd→telnet→標準出力...で、

(1)画面アプリ起動(初期処理:CreatePorcess(cmd telnet xxx.xxx.xxx.xxx))
(2)ボタンクリック
(3)cout << abc 1 2 3 <<endl (コマンド投入)
(4)ボタンクリック
(5)cout << abc 1 2 4 <<endl
etc..
(6)終了ボタンclick(telnet終了:quit、cmd終了:exit)

などでいけるかなと思ったのですが、(3)でアプリ画面のほうに制御が戻ってきません。
コンソール画面を表示して確認すると、投入はできてる感じで、入力待ちになってるようです。
そこでenterを押しても画面には戻らず、、enter→quitで戻る?!
通信系は苦手ですが、コマンドプロンプトでやってることをそのままだから とは思ったものの...omz
根本的に間違っているでしょうか?
サンプルコードも探したのですが、見つからず質問させていただきました。
teratermマクロ...など見つけたのですが敷居が高いのとteratermのインストールは×みたいで。webアプリも駄目といわれ。。。

どうかアドバイスをお願いいたします!

投稿日時 - 2017-11-21 07:27:13

QNo.9399653

すぐに回答ほしいです

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

>根本的に間違っているでしょうか?
コマンド(cmd)を実行しているわけですので、目的としているような画面には結果は反映されません。
>teratermマクロ...など見つけたのですが敷居が高いのとteratermのインストールは×みたいで。
Rlogin(rlogin.exe)はインストール不要ですぐ実行できます。
ただし、実行時にレジストリは使用します。
考え方としてはrlogin.exe実行時にコマンドラインでのオプションを指定して起動すればいいです。
例えば
rlogin /telnet
とすればサーバーへのログオン画面が表示されます。
---下記サイトにRLoginのすべてが説明されています。
http://nanno.dip.jp/softlib/man/rlogin/
コマンドラインのオプションは
http://nanno.dip.jp/softlib/man/rlogin/#CMDLINE

投稿日時 - 2017-11-21 15:00:12

補足

時間がなかったので やりたいことをbatファイルにして
system関数で動かすことができました。
とりあえず、これで進めてあとで なぜできなかったか調べたいと思います。
ありがとうございました。

投稿日時 - 2017-11-23 14:26:53

お礼

kteds さま、ありがとうございます。

特にcmdを実行しないで、直接telnetを実行するのも試しました。動作は同じで、telnetの中で処理をした後止まってるようで、起動元の画面に戻ってきません。
...telnetにコマンドを投入したら、(それを処理すると思うので)telnetを終了して制御をもとの起動した画面に戻したいのです。

ボタンを押したら、telnetに接続してコマンド投入して、telnetを終わらせる..、そしてまたボタンを押したら同じように処理して終わる...がやりたい一連の流れです。

##rlogin /telnet
##とすればサーバーへのログオン画面が表示されます。

このログオン画面での入力も自動で行いたい、さらにログイン成功後の処理用コマンドもプログラムで自動投入したいのです。そして、投入した処理をしたらプログラムでtelnetを終わらせてRLoginも終わらせて..が希望です。
RLoginではそのようなことができるでしょうか。(試していないのにすみません)

WEB上にそれをやってる画面がありまして、読み切れていませんがajaxなど使っているようです。WEBで処理してOKなら、マネしてできそうなのですが、オフラインで動かすことを要求されています。

引き続きよろしくお願いいたします。

投稿日時 - 2017-11-21 22:32:45

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問