【问题标题】:ZeroMQ PGM Multicast doesn't support reply handling from application layer?ZeroMQ PGM 多播不支持来自应用层的回复处理?
【发布时间】:2017-05-03 10:48:00
【问题描述】:

我已经完成了一个示例 ZeroMQ PGM 多播应用程序,它运行良好。

但是回复处理不起作用。 这种方法是否正确?
如果是 - 如何从接收方回复发送方?

发件人:

std::string msg = "hello";
socket->send(msg.c_str(),msg.length(),0);
socket->recv(reply);                          // Can we do this?

接收者:

char msg[100] = {0};
std::string reply = "Succ";
socket->recv(msg,100,0);
socket->send(reply.c_str(),reply.length(),0); // Can we do this?

【问题讨论】:

    标签: c++ zeromq jzmq pgm-protocol


    【解决方案1】:

    是的,不!

    是的,ZeroMQ pgm:// 传输类不支持这一点。

    不,我们不能这样做。既不是 SUB 一侧的 .send(),也不是 PUB 一侧的 .recv()一边。

    ZeroMQ API 规范说

    pgmepgm 传输只能与ZMQ_PUBZMQ_SUB 套接字类型。

    ZMQ_SUB 原型不允许任何 .send() 方法。
    ZMQ_PUB 原型不允许任何 >.recv() 方法。

    Q.E.D.


    那么,如何做到这一点,从而创建一个bi-directional signalling

    还必须添加另一个套接字,很可能使用 tcp:// 传输类,在该传输类上可能会发生反馈信号。

    ZeroMQ 的反向 .bind()/.connect() 机制是在非结构化、形式上不受控制/配置策略未强制执行的分布式计算基础架构中执行此操作的常见做法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-11
      相关资源
      最近更新 更多