【发布时间】:2014-12-04 06:06:36
【问题描述】:
我已经使用 jeromq 0.3.2 在 java 中使用 PUB/SUB 实现了一个简单的客户端和一个服务器。
如果我在本地执行这两个程序,客户端会收到数据。如果我在远程计算机上部署相同的客户端 jar 并运行它,我不会收到任何消息。在这两种情况下,客户端都使用服务器的 ip。对于远程部署,此处没有任何更改。
防火墙也不应该成为问题,如下面的 netstat 摘录所示。服务器(用于测试目的,我的 Macbook Air)也不会阻止任何传出流量。
有什么提示吗?不知何故,我无法发现错误(可能是一些愚蠢的东西,但太盲目了……)
Server.java
ZMQ.Context context = ZMQ.context(1);
ZMQ.Socket publisher = context.socket(ZMQ.PUB);
publisher.bind("tcp://*:5556");
Client.java
ZMQ.Context context = ZMQ.context(1);
ZMQ.Socket subscriber = zmqContext.socket(ZMQ.SUB);
subscriber.connect("tcp://192.168.178.21:5556");
subscriber.subscribe("".getBytes());
防火墙也不应该是个问题
netstat -a ] grep 5556
说
tcp 0 1 192.168.178.29:38145 192.168.178.21:5556 SYN_SENT
最后是我的 iptables 配置,以防我在这里犯了一个愚蠢的配置错误。
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1161:105847]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 192.168.178.0/24 -j ACCEPT
COMMIT
【问题讨论】:
标签: connection zeromq