
Ubuntu LinuxでTCPクライアント通信を行うプログラムをgccで作成しています。
現在、特定のサーバーに対して接続して数十秒ごとに1kバイト程度のパケットを送信するプログラムを1つ作りました。
その後、キーボードのキー入力に応じて、そのキー操作のログテキストファイルを出力プログラムも作りました。
それぞれのプログラムをgccでコンパイルして2つの実行ファイルが作成されました。
キー操作のログテキストファイルをの内容に応じてTCP通信側のプログラムが送信するパケットの内容を変えたいと思っているのですが、この場合片方の実行ファイルを起動した場合に、もう一つの実行ファイルも起動するようにするにはどうしたら良いかご教示頂けないでしょうか?
どうぞ、よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
>この場合片方の実行ファイルを起動した場合に、もう一つの実行ファイルも起動するようにするにはどうしたら
両方のプログラムを起動するシェルスクリプトを作成する。
ってところでしょうかね。
まぁ、それぞれのプログラムを起動させるプログラムを作る。
という方法もあるでしょうが。
なお、バックグラウンドで動作させるようにしないと、起動したプログラムが終了するまで次のプログラムが起動しない。
なんてコトになるのでご注意を。
ユーザーからの操作が必要っぽいので、「TCPクライアント通信を行うプログラム」とやらをバックグラウンドで起動、続けて「キー操作のログテキストファイルを出力プログラム」をフォアグラウンドで実行となるでしょうね。
# バックグラウンドで動作しているプログラムをどうやって終了させるか。
# というのもあらかじめ調べておきましょう。
あとは……
>ログテキストファイルをの内容に応じてTCP通信側のプログラムが送信するパケットの内容を変えたいと思っている
ファイルのオープン時の共有や排他制御とかには注意ですかねぇ。
片方が書き込んで、もう片方がちゃんと読めるか?とか…。
回答頂きありがとうございます。その後、いろいろと複数タスクを動作させていくようなやり方をいろいろと調べてみたところ、実行ファイルを複数動作させるというやり方というのとスレッドというやり方forkというやりかたなどなどがあることがわかってきました。現在自分はソースコードなどを自由に編集したり作ったりすることができるのでスレッドでのプログラミングがやってみたいと感じてきました。複数実行ファイル起動というのもシェルスクリプトっていうバッチみたいな物を活用することでできるのですね。ただ、ファイルの排他制御というのはかなり課題になるのですね。
詳細頂きありがとうございました。シェルスクリプトでの複数実行は今後やってみたいです。
No.2
- 回答日時:
No1が言うとおり、、2個起動した時、
最初に起動したほうをどうやって終わるか?は
ありますね。
ps axでプロセス探してkill するとか?
アプリの起動自体は
./recv & < &で強制起動
./send こっちは&つけずそのまま、クライアントからの入力待ち。。
が、ごっちゃごっちゃ(w)
他のPCから、アクセスしているのであれば、
コンソールを2個まともに開いちゃえば、画面に直接だせてテストしやすいかもですが。
受け側がprintf 出来るので、かなりデバッグが楽です。
ですが、1つのコンソールでやってるんですよね?
<過去に似た事やった事があったんですが、忘れました。
回答頂きありがとうございます。その後、いろいろと複数タスクを動作させていくようなやり方をいろいろと調べてみたところ、実行ファイルを複数動作させるというやり方というのとスレッドというやり方forkというやりかたなどなどがあることがわかってきました。現在自分はソースコードなどを自由に編集したり作ったりすることができるのでスレッドでのプログラミングがやってみたいと感じてきました。複数実行ファイル起動というのもシェルスクリプトっていうバッチみたいな物を活用することでできるのですね。ただ、ファイルの排他制御というのはかなり課題になるのですね。
詳細頂きありがとうございました。シェルスクリプトでの複数実行は今後やってみたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームの最前面が効かない
-
二重起動禁止にする理由とは
-
VC#2005でエクスプローラを起動...
-
exeファイルを実行するとすぐに...
-
EXCEL VBAから他アプリケーショ...
-
Designer.vbは直接コードをいじ...
-
印刷要求順番と印刷出力順番が...
-
C#ソースをCSCファイルにてコン...
-
VBAで印刷スプール終了の判定を...
-
ManagementClassが見つからない。
-
クリレポのプリンタ設定について
-
意味不明の実行時エラーで困っ...
-
VB6をWindows10にインストール...
-
VB.NET+ActiveReports で印刷...
-
VB6上から印刷ダイアログを表示...
-
VB2008→VB2010でエラーが出てま...
-
vbaでPDFファイルが印刷されない
-
VBAでArrayListを使う為の「msc...
-
vba 時間の引き算 例えば 15:00...
-
Keydownイベントについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでOutlookを終了させたい Ex...
-
アウトルックが起動しているか...
-
Windows上のプログラム。「予め...
-
フォームの最前面が効かない
-
VBAでIEが起動しているか...
-
VBSから別のVBS起動するとき変...
-
exeファイルを実行するとすぐに...
-
VBSでExcelのUserFormをエクス...
-
VB6からエクセルの印刷機能...
-
VBSで起動したアプリが前面表示...
-
VBAでSeleniumからChromeを起動...
-
ウィンドウを終了させたい・・・
-
C# 他のアプリケーションを優先...
-
ACCESS VBAで別のACCESS(mdb)を...
-
別のクラスからのタイマの起動方法
-
htmlからcgiを自動的に起動させ...
-
VBで実行中のEXEファイルの情報...
-
【プログラミング】HTAが想定通...
-
gccプログラムで複数の実行ファ...
-
mscomm32.ocxの登録方法
おすすめ情報