2

現在、マスターとスレーブの 2 つのスタンドアロン C++ プログラムがあります。マスターは、 を使用して共有メモリにデータを書き込みboost::interprocess、メモリから読み取ることができるスレーブを起動します。

私がやりたいことは、スレーブを常に実行し、メモリが書き込まれ、読み取る準備ができたときにマスターがスレーブにメッセージを送信することです。

同じことを達成するために私が考えることができる唯一の方法は、スレーブが共有メモリでオブジェクトの存在を常にチェックし、それが検出されたときにそれを読み取って削除することです。ただし、これは最適ではないようです。

同じことを達成するより良い方法はありますか?


背景:これは私の以前の質問の続きです...

4

2 に答える 2

1

posix メッセージ キューを使用することも、メッセージ キューをさらに強化することもできます。

于 2012-01-17T21:08:46.367 に答える
0

UNIXドメインソケットを介して通信してみませんか?他の質問から、あなたはこれをubuntuで構築していると言ったので、Windowsではすぐには機能しません。

Boostは、 boost :: asio libでこれをサポートしています。これは、Windows用にコンパイルするときに名前付きパイプソケットを使用していると思われます。

于 2012-01-17T19:08:58.593 に答える