C++使用cin.read;write

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例,使用boost.asio库实现了一个基于TCP协议的echo服务器和客户端。当客户端向服务器发送消息时,服务器将原封不动地返回该消息。 服务器端代码: ``` #include <iostream> #include <boost/asio.hpp> using boost::asio::ip::tcp; int main() { try { boost::asio::io_service io_service; //监听端口号为1234 tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), 1234)); while (true) { tcp::socket socket(io_service); //等待客户端连接 acceptor.accept(socket); boost::system::error_code error; //读取客户端发送的消息 boost::asio::streambuf buffer; boost::asio::read_until(socket, buffer, "\n", error); if (error) std::cerr << "Error reading: " << error.message() << std::endl; else { std::string message = boost::asio::buffer_cast<const char*>(buffer.data()); std::cout << "Received message: " << message; //将消息原封不动地返回 boost::asio::write(socket, boost::asio::buffer(message), error); if (error) std::cerr << "Error writing: " << error.message() << std::endl; } } } catch (std::exception& e) { std::cerr << "Exception: " << e.what() << std::endl; } return 0; } ``` 客户端代码: ``` #include <iostream> #include <boost/asio.hpp> using boost::asio::ip::tcp; int main() { try { boost::asio::io_service io_service; //连接服务器端口号为1234 tcp::resolver resolver(io_service); tcp::resolver::query query("localhost", "1234"); tcp::resolver::iterator endpoint_iterator = resolver.resolve(query); tcp::socket socket(io_service); boost::asio::connect(socket, endpoint_iterator); std::string message; std::cout << "Enter message: "; std::getline(std::cin, message); //向服务器发送消息 boost::asio::write(socket, boost::asio::buffer(message + "\n")); //读取服务器返回的消息 boost::asio::streambuf buffer; boost::asio::read_until(socket, buffer, "\n"); std::string response = boost::asio::buffer_cast<const char*>(buffer.data()); std::cout << "Received response: " << response; } catch (std::exception& e) { std::cerr << "Exception: " << e.what() << std::endl; } return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值