ZeroMQ PGM Multicast不支持应用层的回复处理?

时间:2017-05-03 10:48:00

标签: c++ zeromq jzmq pgm-protocol

我已经完成了一个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?

1 个答案:

答案 0 :(得分:1)

是的,不!

是的,ZeroMQ pgm:// 传输类不支持此功能。

不,我们不能这样做。 .send() 方面的 SUB {上的 .recv() {1}} 方。

  

ZeroMQ API规范说

PUB pgm 传输只能与 epgm ZMQ_PUB 套接字类型一起使用。

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

Q.E.D。

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

还必须添加另一个套接字,最有可能使用 .recv() 传输类,可能会在其上发生反馈信号。

enter image description here

ZeroMQ的反向 tcp:// / .bind() 机制是在非结构化,正式无法控制/配置中执行此操作的常见做法 - 政策未实施的分布式计算基础设施。