【问题标题】:zeromq: using a linux [REP] and windows [REQ] connection, no message arriveszeromq:使用 linux [REP] 和 windows [REQ] 连接,没有消息到达
【发布时间】:2014-08-11 00:33:19
【问题描述】:

我正在尝试使用带有 ZeroMQ 的 REQ/REP 模式将消息从 Windows 客户端发送到 linux 服务器。服务器端代码是 0MQ 指南示例中的 hwserver.cpp 代码。对于客户端,我也使用示例代码hwclient.cpp

现在手头的问题如下。如果我使用 Linux 服务器和客户端,我可以发送消息、接收消息并发送回复,回复也会收到。当服务器和客户端都在 Windows 中运行时,我也可以接收和发送消息。如果服务器在 Windows 中运行,而客户端在 Linux 中运行,它也可以工作。这些测试让我觉得我至少有正确的 IP 地址。

当我尝试使用 Linux 服务器和 Windows 客户端时,发送的消息没有到达服务器。而且我不知道是什么导致了这种情况,因为 Windows 服务器 + Linux 客户端的反向工作完美。我找到了similar question,但那里发布的解决方案不起作用。

我使用带有 g++ 4.8.3 的 Fedora 20 和带有 Microsoft Visual Studio 2013 的 Windows 8。

在进行这种 0MQ 连接时,是否有必须标记的选项?

【问题讨论】:

    标签: c++ linux windows zeromq


    【解决方案1】:

    一旦 ZeroMQ 版本号匹配,Window$ 就不需要再有任何“魔术开关”了

    n.b.:

    socket.connect ("tcp://<_aUbuntuHOST_IpADRESS_>:5555"); // Do W8 allow outbound tcp:5555 connection in the security policy in effect?
    

    您能否证明 Win 集成防火墙策略(显式安全设置允许例外)确实允许进程请求 + 在指定端口号上使用传出 tcp 连接?

    可以在 REQ/REP 两侧反转 .bind() / .connect() 以保持与安装 Ubuntu 时相同的情况。REQ(使用 @987654327 @ )和 W8.REP (与 .bind() )所以 W8.REQ 将再次 .bind() (您报告它工作正常)& Ubuntu。REP.connect()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 2015-01-10
      • 2020-07-17
      相关资源
      最近更新 更多