C++使用zmq 实现 dealer 和router 客户端发送,服务端接收单不回复的代码
时间: 2024-03-29 08:41:24 浏览: 100
以下是使用C++和zmq实现dealer和router模式的客户端发送和服务端接收,但不回复的示例代码:
Router服务端:
```cpp
#include <zmq.hpp>
#include <iostream>
#include <string>
int main () {
zmq::context_t context(1);
zmq::socket_t router(context, ZMQ_ROUTER); // 创建router socket
router.bind("tcp://*:5555"); // 绑定地址
while (true) {
zmq::message_t identity;
zmq::message_t message;
router.recv(&identity); // 接收身份信息
router.recv(&message); // 接收消息内容
std::cout << "Received message: " << std::string(static_cast<char*>(message.data()), message.size()) << std::endl;
}
return 0;
}
```
Dealer客户端:
```cpp
#include <zmq.hpp>
#include <iostream>
int main () {
zmq::context_t context(1);
zmq::socket_t dealer(context, ZMQ_DEALER); // 创建dealer socket
dealer.connect("tcp://localhost:5555"); // 连接地址
std::string message("Hello, world!");
zmq::message_t request(message.size());
memcpy(request.data(), message.data(), message.size());
dealer.send(request, 0); // 发送消息
return 0;
}
```
在这个例子中,我们使用了一个router和一个dealer,router监听5555端口并等待连接,dealer连接到localhost:5555并发送“Hello, world!”消息。router接收到消息并打印,但不回复任何内容。
阅读全文