ZeroMQ PGM Multicast 不支持来自应用层的回复处理?
ZeroMQ PGM Multicast doesn't support reply handling from application layer?
我做了一个示例 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?
是,不是!
是的,ZeroMQ pgm://
transport-class 不支持这个。
不,我们不能这样做。 .send()
在 SUB
一侧,或 .recv()
在 PUB
一侧。
ZeroMQ API Specification says:
The pgm
and epgm
transports can only be used with the ZMQ_PUB
and ZMQ_SUB
socket types.
ZMQ_SUB
原型不允许任何 .send()
方法。
ZMQ_PUB
原型不允许任何 .recv()
方法。
Q.E.D.
那么,如何做到这一点,从而创建一个 bi-directional signalling?
还必须添加另一个套接字,最有可能使用 tcp://
传输 class,在其上可能会发生反馈信号。
ZeroMQ 的反向 .bind()
/.connect()
机制是在非结构化、正式不受控制/配置策略未强制执行的分布式计算基础设施。
我做了一个示例 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?
是,不是!
是的,ZeroMQ pgm://
transport-class 不支持这个。
不,我们不能这样做。 .send()
在 SUB
一侧,或 .recv()
在 PUB
一侧。
ZeroMQ API Specification says:
Thepgm
andepgm
transports can only be used with theZMQ_PUB
andZMQ_SUB
socket types.
ZMQ_SUB
原型不允许任何 .send()
方法。
ZMQ_PUB
原型不允许任何 .recv()
方法。
Q.E.D.
那么,如何做到这一点,从而创建一个 bi-directional signalling?
还必须添加另一个套接字,最有可能使用 tcp://
传输 class,在其上可能会发生反馈信号。
ZeroMQ 的反向 .bind()
/.connect()
机制是在非结构化、正式不受控制/配置策略未强制执行的分布式计算基础设施。