我有一个简单的ZMQ程序,它建立一个zmq.PUSH套接字,连接,然后尝试发送消息。
导入zmq
zcontext = zmq.Context()zsock = zcontext.socket(zmq.PUSH)zsock.connect(“TCP:// …
你可以得到 zmq.error 使用以下代码段:
zmq.error
import zmq import time zcontext = zmq.Context() zsock = zcontext.socket(zmq.PUSH) zsock.connect("tcp://localhost:12345") try: with open(sys.argv[1]) as f: for line in f: zsock.send(line, flags=NOBLOCK) time.sleep(.1) except zmq.ZMQError as exc: print(exc)
[ 的 注意 强> ]:
你可以改变 .connect() 方法用 .bind() 在上面的代码中,也改变了另一面 bind 至 connect 对于测试用例。
.connect()
.bind()
bind
connect
在 .bind() 应该使用方法 127.0.0.1 代替 localhost 。
127.0.0.1
localhost
[ 的 UPDATE 强> ]:
同 flags=NOBLOCK 在 .send() 方法,这引起了 ZMQError 如果 的 队列已满; 强> 否则,等待空间可用。 因此,在这种情况下,将如下所示: zsock.send(line, flags=NOBLOCK)
同 flags=NOBLOCK 在 .send() 方法,这引起了 ZMQError 如果 的 队列已满; 强> 否则,等待空间可用。 因此,在这种情况下,将如下所示:
flags=NOBLOCK
.send()
ZMQError
zsock.send(line, flags=NOBLOCK)