本示例演示了如何使用 zmq.h 库传递 QString 字符串并使用字符数组接收。

发送端代码:

#include <zmq.h>
#include <QString>
#include <iostream>

int main() {
    void *context = zmq_ctx_new();
    void *socket = zmq_socket(context, ZMQ_PUSH);
    zmq_connect(socket, "tcp://localhost:5555");

    QString message = 'Hello World!';

    QByteArray data = message.toUtf8();
    zmq_send(socket, data.data(), data.size(), 0);

    zmq_close(socket);
    zmq_ctx_destroy(context);

    return 0;
}

接收端代码:

#include <zmq.h>
#include <QString>
#include <iostream>

int main() {
    void *context = zmq_ctx_new();
    void *socket = zmq_socket(context, ZMQ_PULL);
    zmq_bind(socket, "tcp://*:5555");

    char buffer[1024] = {0};
    zmq_recv(socket, buffer, 1024, 0);

    QString message = QString::fromUtf8(buffer);

    std::cout << "Received message: " << message.toStdString() << std::endl;

    zmq_close(socket);
    zmq_ctx_destroy(context);

    return 0;
}

在发送端,我们创建了一个 QString 对象,使用 toUtf8() 方法将其转换为 QByteArray 类型,然后将其发送到 ZMQ socket 中。

在接收端,我们创建了一个字符数组作为缓冲区,并使用 zmq_recv() 方法从 socket 中接收消息。我们然后使用 QString::fromUtf8() 方法将其转换为 QString 类型,并将其输出到控制台。

使用 zmq.h 传递 QString 字符串 - DEMO 示例

原文地址: https://www.cveoy.top/t/topic/oWwO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录