python - 无法让 ZeroMQ python 绑定(bind)通过 IPC 接收消息

标签 python ipc zeromq

我正在尝试通过 IPC 实现 PUB/SUB。如果我更改了下面的代码,以便订阅者绑定(bind)到“tcp://*:5000”并且发布者连接到“tcp://localhost:5000”,它可以工作,但我无法让它通过 IPC 工作。我做错了什么?

订阅者.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()

最佳答案

最可能的原因是您在不同的目录中运行发布者。尝试使用管道位置的绝对路径:“ipc:///tmp/test.pipe”。您现在使用它的方式使其相对于当前工作目录。

关于python - 无法让 ZeroMQ python 绑定(bind)通过 IPC 接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5060508/

相关文章:

c++ - ZeroMQ C++ 上的简单 FlatBuffer 示例 - 通过 zmq 将结构复制到 flatbuffer 并再次返回结构

c++ - 未收到 ZMQ 消息

c++ - posix_spawnp 和管道子输出到一个字符串

zeromq - C++ 示例的 ZMQ 编译问题

python - 从父级获取变量

python - 使用预提交 Hook 运行 Django 测试

c# - NamedPipeServerStream 不适用于 Windows 10(适用于 Windows 7)

与子进程 stdout/stdin 通信

java - Jython Swing : Randomly Occurring Java ImageIO IOException

python - makemigration 导致错误 "TypeError: expected str, bytes or os.PathLike object, not NoneType"