文章标题 原创 翻译 转载 文章内容 请求应答模式 # 介绍 这是最基本的一个模式,很常用,一个请求一个应答,发送和接收必须配对。 # 示例说明 客户端发送一个字符串,然后接收服务端的应答; 服务端收到字符串后将其转换为大写返回给客户端; # 代码 客户端 ``` #include "zmq.hpp" #include <string> #include <iostream> #include <algorithm> int main() { zmq::context_t context(1); zmq::socket_t socket(context, ZMQ_REQ); socket.connect("tcp://127.0.0.1:7733"); std::string msg("hello"); socket.send(zmq::const_buffer(msg.c_str(), msg.size())); std::cout << "request:" << msg << std::endl; zmq::message_t recv_msg; socket.recv(recv_msg); std::cout << "response:" << recv_msg.to_string() << std::endl; system("pause"); return 0; } ``` 服务端 ``` #include "zmq.hpp" #include <string> #include <iostream> #include <algorithm> int main() { zmq::context_t context(1); zmq::socket_t socket(context, ZMQ_REP); socket.bind("tcp://127.0.0.1:7733"); while (1) { try { zmq::message_t msg; socket.recv(msg); std::string str_msg = msg.to_string(); std::cout << "recv:" << str_msg << std::endl; std::transform(str_msg.begin(), str_msg.end(), str_msg.begin(), ::toupper); zmq::const_buffer buffer(str_msg.c_str(), str_msg.size()); socket.send(buffer); std::cout << "send:" << str_msg << std::endl; } catch (zmq::error_t &e) { std::cerr << "error:" << e.what() << std::endl; zmq_sleep(1); } } return 0; } ``` 文章类别 Python Mobile Android Java Shell Life Database Bug Windows IOS Tools Boost Node.js Mac Product Tips C/C++ Golang Javascript React Qt MQ MongoDB Design Web Linux LLM ChatGPT RAG AI 提交