擅长:python、mysql、java
<p>我怀疑你的问题可能与机器之间端口的开放有关。有些操作系统有自己的软件防火墙,因此您可能需要检查是否需要打开它们。在</p>
<p>首先,我要检查您是否可以在两台机器之间执行一个简单的req/rep:</p>
<pre><code># machine 1
import zmq
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5556")
req = socket.recv()
socket.send(req)
# machine 2
import zmq
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://192.168.1.52:5556")
socket.send("FOO")
print socket.recv()
</code></pre>
<p>如果您对此有问题,那么您可能需要检查这些端口。在</p>
<p>其次,您还可以尝试使用以下命令绑定到所有接口:<code>socket.bind("tcp://*:5556")</code></p>
<p>对于您的实际目标,如果您只需要一个多个发送方/单个接收方,那么您可以使用PUSH/PULL而不是PUB/SUB</p>
^{2}$