我正在尝试在IPC上实现发布/订阅。如果我更改了下面的代码,使订阅者绑定到"tcp://*:5000“,发布者连接到"tcp://localhost:5000”,它可以工作,但我不能让它在IPC上工作。我做错了什么?
subscriber.py
import zmq, json
def main():
context = zmq.Context()
subscriber = context.socket(zmq.SUB)
subscriber.bind("ipc://test")
subscriber.setsockopt(zmq.SUBSCRIBE, '')
while True:
print subscriber.recv()
if __name__ == "__main__":
main()
publisher.py
import zmq, json, time
def main():
context = zmq.Context()
publisher = context.socket(zmq.PUB)
publisher.connect("ipc://test")
while True:
publisher.send( "hello world" )
time.sleep( 1 )
if __name__ == "__main__":
main()
发布于 2011-02-21 06:48:16
最可能的原因是您在不同的目录中运行publisher。尝试使用管道位置的绝对路径:“ipc:/tmp/test.Pipe.”。你现在使用它的方式使得它相对于当前的工作目录。
https://stackoverflow.com/questions/5060508
复制相似问题