赞
踩
cppzmq是一个基于ZeroMQ的开源C ++库,用于构建分布式和并发应用程序。它提供了与ZeroMQ消息队列进行通信的简单接口。本文将介绍cppzmq的基本概念、常用模式以及示例代码。
下面是一个简单的cppzmq示例代码,演示了REQ-REP模式的使用:
// Server.cpp #include <zmq.hpp> #include <iostream> int main() { zmq::context_t context(1); zmq::socket_t socket(context, zmq::socket_type::rep); socket.bind("tcp://*:5555"); while (true) { zmq::message_t request; socket.recv(request, zmq::recv_flags::none); std::cout << "Received request: " << request.to_string() << std::endl; zmq::message_t reply(5); memcpy(reply.data(), "Reply", 5); socket.send(reply, zmq::send_flags::none); } return 0; }
// Client.cpp #include <zmq.hpp> #include <iostream> int main() { zmq::context_t context(1); zmq::socket_t socket(context, zmq::socket_type::req); socket.connect("tcp://localhost:5555"); std::string request_str = "Hello"; zmq::message_t request(request_str.size()); memcpy(request.data(), request_str.c_str(), request_str.size()); socket.send(request, zmq::send_flags::none); zmq::message_t reply; socket.recv(reply, zmq::recv_flags::none); std::cout << "Received reply: " << reply.to_string() << std::endl; return 0; }
以上代码分为两个文件,一个是Server.cpp,另一个是Client.cpp。Server.cpp创建一个REP类型的socket,并绑定到"tcp://*:5555"地址上。在服务器的无限循环中,它接收来自客户端的请求消息,然后发送一个回复消息。
Client.cpp创建一个REQ类型的socket,并连接到"tcp://localhost:5555"。客户端发送一个请求消息给服务器,并等待服务器的响应。
这只是cppzmq的入门教程,更详细的内容和更复杂的模式可以在官方文档中找到。希望这篇教程对你有所帮助!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。