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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- その他(セキュリティ) これはDos攻撃になりますか? 1 2022/06/30 09:46
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- その他(プログラミング・Web制作) マウスを使用してpowershellのプログラムを起動して、引数リストを渡したい 1 2022/11/07 21:39
- C言語・C++・C# このプログラミング誰か教えてくれませんか 3 2022/05/13 17:27
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WinSCPで画像のように puttyを...
-
分かる人は簡単なのだろうが、v...
-
wshで既に立ち上がっているアプ...
-
C#のフォームから起動するブラ...
-
VBSから別のVBS起動するとき変...
-
アウトルックが起動しているか...
-
プログラム2重起動処理の方法
-
VisualBasic2005 外部アプリを...
-
VBAでSeleniumからChromeを起動...
-
VBS から BAT を起動させたい
-
CreateProcess()について
-
Windows上のプログラム。「予め...
-
vba 時間の引き算 例えば 15:00...
-
Windows10のVBAでDirectX 8が使...
-
イベントプロシージャ 印刷が...
-
「読み込み違反」が起きたとき...
-
matplotlibで任意の角度の円弧...
-
秒数を入力すると○時間○分○秒と...
-
IT初心者です 仕事で、vb.netで...
-
VBでUSB制御プログラム作成する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アウトルックが起動しているか...
-
WinSCPで画像のように puttyを...
-
VBSから別のVBS起動するとき変...
-
Windows上のプログラム。「予め...
-
VBAでOutlookを終了させたい Ex...
-
VBで実行中のEXEファイルの情報...
-
VBSで起動したアプリが前面表示...
-
Process.Startで起動したアプリ...
-
EXCEL VBAから他アプリケーショ...
-
64bitで作ったEXEを32bitで起動...
-
exeファイルを実行するとすぐに...
-
リムーバブルディスクのフォー...
-
VB6で呼び出し元の情報を取得す...
-
VBAでIEが起動しているか...
-
フォームの最前面が効かない
-
VBAでSeleniumからChromeを起動...
-
エクセル起動時別プロセスで開く
-
VBSでExcelのUserFormをエクス...
-
ACCESS VBAで別のACCESS(mdb)を...
-
別アプリの起動、終了について
おすすめ情報