C++ ZMQ 示例:传递随机长度 QString 字符串
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 库才能运行。
- 该示例代码只演示了简单的字符串传递,实际应用中可能需要根据具体情况进行修改。
原文地址: https://www.cveoy.top/t/topic/oWuW 著作权归作者所有。请勿转载和采集!