ZMQ 套接字文档中的ZMQ_PUSH
部分说,调用没有下游节点的 PUSH 套接字应该阻塞,直到至少有一个节点可用。send()
但是,运行以下代码似乎不会阻止send()
. 此外,在我运行匹配的 PULL 套接字并接收到消息之前,该进程不会退出:
import zmq
import time
zmq_context = zmq.Context()
print '> Creating a PUSH socket'
sender = zmq_context.socket(zmq.PUSH)
print '> Connecting'
sender.connect('tcp://localhost:%s' % 5555)
print '> Sending'
sender.send('message 1')
print '> Sent'
输出:
Creating a PUSH socket
Connecting
Sending
Sent
我是否遗漏了什么,或者这是 PyZmq 中的错误?
版本信息:Windows 7、Python 2.7、PyZMQ 14.0.1
编辑
经过一番摆弄,似乎如果我替换sender.connect('tcp://localhost:5555)
为sender.bind('tcp://127.0.0.1:5555)
,它会按预期工作。不过,不确定它是如何相关的。