Connection 0mq:无法在远程客户端上接收数据

Connection 0mq:无法在远程客户端上接收数据,connection,zeromq,Connection,Zeromq,我使用jeromq 0.3.2在java中使用PUB/SUB实现了一个简单的客户端和一个服务器 如果我在本地执行这两个程序,客户端将接收数据。如果我在远程计算机上部署相同的客户机jar并运行它,我不会收到任何消息。在这两种情况下,客户端都使用服务器的ip。此处未对远程部署进行任何更改 正如下面的netstat摘录所示,防火墙也不应该是一个问题。用于测试目的的服务器my Macbook Air也不会阻止任何传出流量 有什么提示吗?不知何故,我无法发现错误,可能是一些愚蠢的事情,但太盲目,看不见 S

我使用jeromq 0.3.2在java中使用PUB/SUB实现了一个简单的客户端和一个服务器

如果我在本地执行这两个程序,客户端将接收数据。如果我在远程计算机上部署相同的客户机jar并运行它,我不会收到任何消息。在这两种情况下,客户端都使用服务器的ip。此处未对远程部署进行任何更改

正如下面的netstat摘录所示,防火墙也不应该是一个问题。用于测试目的的服务器my Macbook Air也不会阻止任何传出流量

有什么提示吗?不知何故,我无法发现错误,可能是一些愚蠢的事情,但太盲目,看不见

Server.java

Client.java

防火墙也不应该成为问题

 netstat -a ] grep 5556 

最后是我的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

事实上,问题不在于客户端的代码或防火墙

我的电脑Macbook Air的防火墙规则处于活动状态,不允许任何传入连接。这就是为什么连接总是卡在SYN_SENT中。我在检查防火墙规则时忽略了这一点

我收到了一个关于在基于*nix的系统上使用0mq或tcp跟踪连接相关问题的一般建议:tcpdump、ngrep、netcat

 netstat -a ] grep 5556 
tcp        0      1 192.168.178.29:38145    192.168.178.21:5556     SYN_SENT
*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