c - ZeroMQ 请求/回复不向一个方向回复

标签 c network-programming zeromq

我使用 ZeroMQ 的 C 接口(interface)在多台机器之间分配计算。在本地,tcp://localhost:5555 一切正常。但是,当客户端和服务器分别运行在两台机器 A 和 B 上时,只有当服务器运行在 A 上、客户端运行在 B 上时,请求和回复才有效。如果相反,则只有 B 上收到请求,而 B 上运行客户端。 A 上的客户端从未收到回复。

为了验证我是否正确设置了所有内容,我编译了第一个 example来自 ZeroMQ 指南,但存在同样的问题。

造成这种行为的原因是什么?

最佳答案

该问题很可能是由两个不兼容的 0MQ 版本引起的。

这是 0MQ v3.0.x、3.1.x、3.2.0、3.2.1 的已知问题。这些版本都使用了未记录的、不兼容的协议(protocol)版本(没有版本号,因此很难互操作),最终在 3.2.2 稳定版中修复。如果您运行的是旧版本,并且这可能与您正在使用的语言绑定(bind)一起提供,请升级它。如果有严重原因导致您无法升级,例如如果您有正在使用旧版本的客户,请在 Zeromq-dev 列表上询问,有人可能会提供帮助。无论如何,该协议(protocol)现在有版本号,并且向后兼容以前的稳定版本(2.2 和 2.1)。

关于c - ZeroMQ 请求/回复不向一个方向回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14194289/

相关文章:

c++ - 全局常量定义的顺序

c - 在邻接矩阵中随机添加 INFTY 值

linux - 在没有服务器调用 'connect' 的情况下,套接字上的 'accept' 调用能否成功返回?

c - ELF 的代理共享库(sharedlib、shlib 等)?

无法编译 malloc__hooks 的 GNU 示例

c++ - 如何设置 ZMQ PUB/SUB 模式以仅服务于预授权订阅者

c++ - zmq-cpp : recv() waits for data despite ZMQ_DONTWAIT being set

python - 回调函数在实例中看不到正确的值

ios - en0 会一直是 iOS 设备上的 Wi-Fi 吗?

c - TCP服务器通过多线程向多个客户端发送和接收数据