#include <QtCore>
#include <zmq.h>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
// 初始化 ZeroMQ 上下文
void *context = zmq_ctx_new();
// 创建 SUB(订阅者)套接字
void *subscriber = zmq_socket(context, ZMQ_SUB);
// 设置订阅的频道
const char *channel = "";
zmq_setsockopt(subscriber, ZMQ_SUBSCRIBE, channel, strlen(channel));
// 连接到发布者
const char *address = "tcp://127.0.0.1:5555";
zmq_connect(subscriber, address);
// 接收消息
while (true) {
// 接收消息
zmq_msg_t message;
zmq_msg_init(&message);
zmq_msg_recv(&message, subscriber, 0);
// 获取消息内容
QByteArray data(static_cast<const char*>(zmq_msg_data(&message)), zmq_msg_size(&message));
QString messageText(data);
qDebug() << "Received:" << messageText;
// 释放消息
zmq_msg_close(&message);
}
// 关闭套接字
zmq_close(subscriber);
// 销毁 ZeroMQ 上下文
zmq_ctx_destroy(context);
return app.exec();
}