我需要一段message queue send and receive的代码
时间: 2024-05-05 13:14:56 浏览: 126
EMSQueuejava实例_JinBaotao.pdf
好的,以下是一个简单的C++消息队列的发送和接收代码示例:
发送消息:
```c++
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <chrono>
#include <thread>
#include <zmq.hpp>
int main () {
// 创建socket,连接本地端口
zmq::context_t context(1);
zmq::socket_t sender(context, ZMQ_PUSH);
sender.bind("tcp://*:5557");
// 发送数据
int content = 10;
zmq::message_t message(sizeof(int));
memcpy(message.data(), &content, sizeof(int));
sender.send(message);
return 0;
}
```
接收消息:
```c++
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <chrono>
#include <thread>
#include <zmq.hpp>
int main () {
// 创建socket,连接本地端口
zmq::context_t context(1);
zmq::socket_t receiver(context, ZMQ_PULL);
receiver.connect("tcp://localhost:5557");
while (true) {
// 接收数据
zmq::message_t message;
receiver.recv(&message);
int content = *((int*)message.data());
std::cout << "received message: " << content << std::endl;
}
return 0;
}
```
以上示例代码演示了如何使用ZeroMQ实现一个简单的消息队列的发送和接收。注意,代码中只是包含了最基本的实现,生产环境中需要进一步完善代码,例如支持多线程、错误处理等。
阅读全文