我在zeromq中有一个客户端服务器对。奇怪的是,pull客户端只接收每隔一次发送的消息。下面是我的实现
## Push Server
import zmq
def post():
context = zmq.Context()
socket = context.socket(zmq.PUSH)
socket.bind("tcp://127.0.0.1:3333")
socket.send("hello")
socket.close()
if __name__ == "__main__":
post()
## Pull client
def read():
context = zmq.Context()
content = context.socket(zmq.PULL)
content.connect("tcp://127.0.0.1:3333")
while True:
print content.recv()
if content.recv() is "0":
sys.exit()
if __name__ == "__main__":
read()
为什么read()只收到一半的消息?
发布于 2013-07-12 07:38:04
每次调用content.recv()时都会收到一条新消息。其中一个用于print语句,另一个用于if子句。改为将消息读取到本地变量中。作为附注,使用'==',而不是'is‘进行比较。
while True:
msg = content.recv()
print msg
if msg == "0":
sys.exit()
https://stackoverflow.com/questions/17604686
复制相似问题