特定のパケットをキャプチャして分析するプログラムを作成しようとしています。私はpcap_loop
を使用してパケットをキャプチャします。これは、私のプログラムがこのコマンドで無期限にスタックされていることを意味します。だから私の解決策は、2つのプロセスを作成することです。そのうちの1つはパケット(子)をキャプチャし、もう1つは抽出した情報を使用して分析(親)を行います。プログラムが無限に実行され、分析がリアルタイムで起こるようにプログラムがこのような何かを探すようにするために、私は希望:親プロセス "子どものメッセージを聞いて"
子供:
capture_packets(packet_foo());
packet_foo() {
extract_info();
send_to_parent()
}
親:
while(1) {
wait_for_msg_from_child();
recv_msg();
analyze();
printf();
}
私はあなたが理解してほしいです私がやろうとしていること。このようなコミュニケーションを生み出すことは可能ですか?私は考えることができないこれを行うための良い方法はありますか?
ありがとうございました。
もちろん、特に方向が1つしかない場合は、2つのプロセスが通信することは可能です。これまでのところ、簡単なテキストプロトコルを設計し、パイプ上で2つの話をすることさえできます。 '子ども| parent'または 'capture_packets |分析装置。 –
ええ、間違いなく可能ですが、親がメッセージを送信するのを子どもが待つ部分にもっと興味があります – mandatory
どのプログラミング言語を使用していますか? –