boost.asio的同步echo服务器端和客户端实现

本文详细介绍了使用Boost.Asio库实现同步Echo服务器和客户端的过程,包括代码示例和运行说明。服务器监听指定端口,接收并反射客户端消息;客户端连接服务器,发送并接收响应。
// Synchronous echo server.
#include <array>
#include <iostream>
#include <string>

#include "boost/asio.hpp"

using boost::asio::ip::tcp;

enum {
   
    BUF_SIZE = 1024 };

void Session(tcp::socket socket) {
   
   
	try {
   
   
		while (true) {
   
   
			std::array<char, BUF_SIZE> data;

			boost::system::error_code ec;
			std::size_t length = socket.read_some(boost::asio::buffer(data), ec);

			if (ec == boost::asio::error::eof) {
   
   
				std::cout << "Connection closed cleanly by peer." << std::endl;
				break;
			}
			else if (ec) {
   
   
				// Some other error
				throw boost::system::system_error(ec);
			}

			boost::asio::write(socket, boost::asio::buffer(data, length));
		}
	}
	catch (const std::exception& e) {
   
   
		std::cerr 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值