为什么 zeromq 在 localhost 上不起作用?
问题描述
This code works great:
import zmq, json, time
def main():
context = zmq.Context()
subscriber = context.socket(zmq.SUB)
subscriber.bind("ipc://test")
subscriber.setsockopt(zmq.SUBSCRIBE, '')
while True:
print subscriber.recv()
def main():
context = zmq.Context()
publisher = context.socket(zmq.PUB)
publisher.connect("ipc://test")
while True:
publisher.send( "hello world" )
time.sleep( 1 )
But this code doesn't* work:
import zmq, json, time
def recv():
context = zmq.Context()
subscriber = context.socket(zmq.SUB)
subscriber.bind("tcp://localhost:5555")
subscriber.setsockopt(zmq.SUBSCRIBE, '')
while True:
print subscriber.recv()
def send():
context = zmq.Context()
publisher = context.socket(zmq.PUB)
publisher.connect("tcp://localhost:5555")
while True:
publisher.send( "hello world" )
time.sleep( 1 )
It raises this error:
ZMQError: No such device
Why, can't zeromq use localhost interfaces?
Does it only work on IPC on the same machine?
解决方案The problem is at line:
subscriber.bind("tcp://localhost:5555")
try to change to:
subscriber.bind("tcp://127.0.0.1:5555")
相关文章