【问题标题】:ZeroMQ with ACE ReactorZeroMQ 与 ACE 反应器
【发布时间】:2017-12-11 20:29:55
【问题描述】:

我有一个使用 ACE Reactor 处理通信的旧应用程序。为了提高临时网络分区的可靠性,我想使用 ZeroMQ 而不是 TCP 套接字作为传输。 ACE 为现有 IPC 机制提供C++ 包装器,但我想提供一个自定义 ACE 可以使用的IPC 机制。在我的特殊情况下,我想使用 zmq,但我的问题更笼统,我在问,如何将自定义传输与 ACE 一起使用?

【问题讨论】:

  • 您是否想询问是否有人可以访问 ACE 框架源代码文档?如果有人愿意,ZeroMQ 甚至可以智能地调解原始 TCP 发起的传输链路跨非本地传输路由,因此作为最后的手段,您也可以这样做。
  • 如果您有一些理解 BSD 套接字的源代码,并且您不想对其进行太多更改,您可能会关心查看nanomsg.org。它在哲学上与 ZeroMQ 非常相似,但它的函数原型更接近 BSD 套接字函数原型。

标签: c++ zeromq ace


【解决方案1】:

有两种方法可以解决这个问题。

  1. ACE_SOCKACE_IPC_SAP 派生新的 IPC 类系列,具体取决于 ZeroMQ 为您提供的模型。不要忘记要匹配的地址类。这是一项繁重的工作,但如果您将在许多地方重复使用它可能是值得的。
  2. ACE_Event_Handler 为您的用例派生一个处理程序,并包含一个成员,该成员是您的ZeroMQ 传输对象。假设您可以从 ZeroMQ 对象中获得一个可选择的套接字句柄,您可以从 get_handle() 挂钩访问它并将其注册到反应器。然后从您的handle_input() 等回调中进行消息传输。这是相对快速和容易的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 2021-11-27
    • 2012-08-05
    • 2021-10-28
    • 2012-02-04
    相关资源
    最近更新 更多