2013-11-28 18 views
2

以下是我正在使用的「發件人」和「收件人」。如何獲得zeromq PUSH/PULL在Windows上工作?

sender.py

import time 

import zmq 

context = zmq.Context() 
sender = context.socket(zmq.PUSH) 
sender.connect("tcp://127.0.0.1:5557") 

c = 0 
while True: 
    sender.send_json(c) 
    print "Sent {}".format(c) 
    c += 1 
    time.sleep(1) 

reciever.py

import zmq 

context = zmq.Context() 
receiver = context.socket(zmq.PULL) 
receiver.connect("tcp://127.0.0.1:5557") 

while True: 
    m = receiver.recv_json() 
    print m 

當我開始接收器,然後開始發送沒有數據被寫入到stdout在接收者的CMD(我試圖得到這個在Windows 7上工作)。我爲端口5557添加了入站和出站例外防火牆,並且運行netstat -an未顯示在端口5557上運行的任何內容。最後,我使用的是zmq 2.2.0。

回答

2

在你的sender.py你應該寫sender.bind,而不是sender.connect

+0

謝謝,這個伎倆。一個告誡,我相信我的代碼可能會受到「慢速加盟者」(http://zguide.zeromq.org/page:all)問題的困擾。 – John