擅长:python、mysql、java
<p>根据<a href="https://stackoverflow.com/users/126769/nos">@nos</a>的说法,ROUTER-to-REP是无效组合,而ROUTER-to-ROUTER socket是有效的组合。很简单,我把REP套接字改成了路由器!修订后的代码如下:</p>
<pre><code>import zmq
if __name__=='__main__':
context = zmq.Context()
socket = context.socket(zmq.ROUTER) # Changed
socket.setsockopt(zmq.IDENTITY, "R1")
socket.connect("tcp://127.0.0.1:6660")
while True:
print("Wating for request...")
me = socket.recv() # New
empty = socket.recv() # New
toAddr = socket.recv()
empty = socket.recv()
req = socket.recv()
print("%s received!" % str(req))
socket.send(me, zmq.SNDMORE) # New
socket.send(empty, zmq.SNDMORE) # New
socket.send(toAddr, zmq.SNDMORE)
socket.send(empty, zmq.SNDMORE)
socket.send("Reply to %s" % str(req))
</code></pre>