C++ zmq pull push模式 任意条数据发收
时间: 2024-03-20 18:45:00
浏览: 48
在 ZeroMQ 中,使用 push-pull 模式时,发送方可以发送任意数量的[消息](https://geek.csdn.net/educolumn/20acd77092e0c464c067a69674f1ed19?spm=1055.2569.3001.10083),接收方也可以接收任意数量的[消息](https://geek.csdn.net/educolumn/20acd77092e0c464c067a69674f1ed19?spm=1055.2569.3001.10083)。如果您想在接收方接收任意数量的数据,可以使用循环来不断接收消息,直到您认为接收完毕为止。
以下是一个示例[代码](https://geek.csdn.net/educolumn/1572ef9b473b4e00f6b2bf6d428b7c27?spm=1055.2569.3001.10083),演示了如何在 C++ 中使用 ZeroMQ 的 push-pull 模式来发送和接收任意数量的消息:
**发送方**
```cpp
#include <zmq.hpp>
#include <iostream>
#include <[string](https://geek.csdn.net/edu/8802d631b97a4a6af1f4d0bbf8527465?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)>
int main() {
zmq::context_t context(1);
zmq::socket_t sender(context, ZMQ_PUSH);
sender.bind("tcp://*:5555");
// 发送任意数量的消息
std::[string](https://geek.csdn.net/edu/8802d631b97a4a6af1f4d0bbf8527465?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083) message;
while (std::getline(std::cin, message)) {
zmq::message_t msg(message.size());
memcpy(msg.data(), message.c_str(), message.size());
sender.send(msg);
return 0;
```
相关推荐















