zmq 消息队列 C++ 如何发送,接受消息?
时间: 2024-04-03 20:35:30 浏览: 161
c++ ZMQ 接受发送端
使用 ZeroMQ(zmq)消息队列 C++ 库,可以通过以下步骤发送和接收消息:
发送消息:
1. 引入 zmq 库的头文件:#include <zmq.hpp>
2. 创建 zmq::context_t 对象,用于创建 zmq::socket_t 对象。
3. 创建 zmq::socket_t 对象,并指定 socket 的类型,例如:zmq::socket_t socket(context, ZMQ_PUSH);
4. 使用 socket.bind() 方法将 socket 绑定到指定的地址和端口,例如:socket.bind("tcp://*:5555");
5. 使用 socket.send() 方法发送消息,例如:socket.send(zmq::buffer("Hello, World!"));
接收消息:
1. 引入 zmq 库的头文件:#include <zmq.hpp>
2. 创建 zmq::context_t 对象,用于创建 zmq::socket_t 对象。
3. 创建 zmq::socket_t 对象,并指定 socket 的类型,例如:zmq::socket_t socket(context, ZMQ_PULL);
4. 使用 socket.connect() 方法连接到指定的地址和端口,例如:socket.connect("tcp://localhost:5555");
5. 使用 socket.recv() 方法接收消息,例如:zmq::message_t message; socket.recv(&message); std::string msg_str(static_cast<char*>(message.data()), message.size());
需要注意的是,发送和接收消息的时候,需要使用相同的 socket 类型,例如:ZMQ_PUSH 和 ZMQ_PULL,ZMQ_PUB 和 ZMQ_SUB 等。同时,需要使用相同的地址和端口进行绑定和连接。
阅读全文