【问题标题】:How a process can broadcast data locally进程如何在本地广播数据
【发布时间】:2014-04-08 06:59:24
【问题描述】:

我正在寻找一些现有的本地广播数据方式(如 IPC,但以非连接方式)。

需要: 我目前有一个没有 HMI(并且不会有)的计算程序,我希望该程序发送有关其进度的信息,以便另一个可以显示它(例如在 HMI 中)。但如果没有其他程序“收听”,则编译不会中断。我希望在计算程序中嵌入最少的逻辑。

我找到了有关 IPC 的信息,但它似乎只在客户端-服务器配置中有效。 所以我已经确定我的需要是找到一种广播数据的方法,并且客户端可能会或可能不会收听此广播。

我该怎么做?

编辑: 我想要一个非常轻量级的解决方案(比如一个独立的 .h 文件集(不超过 5 个)),甚至是我自己做的方式:正如我所说,IPC 看起来不错,但它以连接的方式工作。 例如,0MQ (http://zguide.zeromq.org/page:all#Getting-the-Message-Out) 正是我所需要的,但嵌入了很多功能。

【问题讨论】:

  • 您可能有兴趣查看ZeroMQ(尤其是PUB/SUB 模式)。
  • 感谢您的回复,ZeroMQ 非常有趣,但就我而言,它太大了。例如,我会最简单的 .h 文件,甚至是自己做的一种方式。

标签: c++ ipc communication broadcast


【解决方案1】:

您可以尝试使用 MPI 库来实现此目的。

看看this

【讨论】:

  • 非常感谢,但正如之前回复的那样,这与我的需求相比太过分了,并且需要对我想要使用我的程序的方式产生很大影响。
【解决方案2】:

目前,共享内存(在 UNIX 上)似乎可以胜任。 有几点我还没有调查:

  • 操作系统之间的兼容性(它是 C++,我希望它是 可在任何平台下构建,无需更改代码)
  • 在编译时共享大小不确定的复杂对象。
  • 动态大小 => 拥有某些东西可能真的很复杂 高效。

所以我仍然保持开放并等待更好的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 2021-03-31
    • 1970-01-01
    • 2019-03-08
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多