消息在两个程序之间传递

时间:2012-01-17 19:01:11

标签: c++ shared-memory message-passing boost-interprocess

目前我有两个独立的C ++程序,主服务器和从服务器。主设备使用boost::interprocess将一些数据写入共享内存,然后启动从设备,该设备能够从内存中读取。

我想要做的是让从机持续运行,并且当存储器写入并准备好从中读取时,主机向从机发送消息。

我能想到实现同样事情的唯一方法是让奴隶不断检查共享内存中是否存在某个对象,并在检测到它时从中读取并删除它。但是,这似乎不是最佳选择。

有没有更好的方法来实现同样的目标?


背景:这是我上一个问题的延续here ...

2 个答案:

答案 0 :(得分:1)

您可以使用posix message queues,或者更好boost message queues

答案 1 :(得分:0)

为什么不通过unix域套接字进行通信?从另一个问题来看,你说你是在ubuntu上构建的,所以这不会立即在windows上运行。

Boost在boost::asio lib中支持这一点,我怀疑在编译windows时使用命名管道套接字。