【发布时间】:2017-11-23 08:13:33
【问题描述】:
我是 ZMQ 的新手,正在尝试在 Python 发布者和 C++ 订阅者之间实现简单的 Pub-Sub 通信。按照官方文档,我想出了这些代码:
Python 发布者
import zmq
import datetime
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://127.0.0.1:5555")
while True:
now = datetime.datetime.now()
nowInMicroseconds = str(now.microsecond)
socket.send_string(nowInMicroseconds)
print("sending time in microseconds")
C++ 订阅者
#include <zmq.hpp>
#include <iostream>
int main ()
{
zmq::context_t context (1);
zmq::socket_t subscriber (context, ZMQ_SUB);
subscriber.connect("tcp://127.0.0.1:5555");
subscriber.setsockopt(ZMQ_SUBSCRIBE, "");
while(true) {
std::cout << "Getting data" << std::endl;
zmq::message_t update;
subscriber.recv(&update);
std::cout << "Data received" << std::endl;
}
}
但是当我运行代码时,我不会收到来自 Python 的任何数据。我做错了什么?
编辑
以user3666197 建议的方式运行带有 Python 订阅者的 Python Publisher 可以正常工作。使用 C++ 订阅者运行 C++ Publisher 就像魅力一样。
【问题讨论】:
-
你发现了吗?