C++ ZMQ 示例:传递随机长度 QString 字符串

本示例演示如何使用 ZMQ 库在 C++ 中传递随机长度的 QString 字符串,包括随机字符串生成、发送和接收代码。

发送方代码

#include <iostream>
#include <string>
#include <random>
#include <zmq.hpp>

int main()
{
    // 创建上下文和套接字
    zmq::context_t context(1);
    zmq::socket_t socket(context, zmq::socket_type::pair);

    // 绑定套接字
    socket.bind("tcp://*:5555");

    // 设置随机数生成器
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> dis(1, 100);

    while (true)
    {
        // 随机生成字符串长度
        int length = dis(gen);

        // 随机生成字符串
        std::string str(length, ' ');
        for (int i = 0; i < length; ++i)
        {
            str[i] = 'a' + dis(gen) % 26;
        }

        // 将字符串打印到控制台
        std::cout << "Generated string: " << str << std::endl;

        // 将字符串发送给接收方
        zmq::message_t message(str.size());
        memcpy(message.data(), str.data(), str.size());
        socket.send(message);

        // 等待一段时间再生成下一个字符串
        std::this_thread::sleep_for(std::chrono::seconds(1));
    }

    return 0;
}

该示例代码使用了 C++11 中的随机数生成器,每秒钟随机生成一个字符串并发送给接收方。

接收方代码

zmq::message_t message;
socket.recv(&message);
std::string str(static_cast<char*>(message.data()), message.size());
std::cout << "Received string: " << str << std::endl;

在接收到字符串后,可以将其打印到控制台。

注意:

  • 该示例代码使用了 ZMQ 库,需要先安装 ZMQ 库才能运行。
  • 该示例代码只演示了简单的字符串传递,实际应用中可能需要根据具体情况进行修改。
C++ ZMQ 示例:传递随机长度 QString 字符串

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

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