【问题标题】:Message passing between two programs两个程序之间的消息传递
【发布时间】:2012-02-12 13:58:47
【问题描述】:

目前我有两个独立的 C++ 程序,一个主程序和一个从属程序。 master 使用boost::interprocess 将一些数据写入共享内存,然后启动slave,它可以从内存中读取。

我想做的是让从站不断运行,并让主站在内存已写入并准备好读取时向从站发送消息。

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

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


背景:这是我之前的问题here的延续...

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      为什么不让它们通过 unix 域套接字进行通信?在另一个问题中,你说你是在 ubuntu 上构建的,所以它不会立即在 Windows 上工作。

      Boost 在boost::asio lib 中对此提供了支持,我怀疑在为 Windows 编译时会使用命名管道套接字。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-30
        • 1970-01-01
        相关资源
        最近更新 更多