服务端代码
#include <boost/asio.hpp>
#include <iostream>
#include <thread>
using boost::asio::ip::tcp;
/**
* 处理客户端连接的函数
* 接收客户端消息并向客户端发送回复
* @param socket 与客户端通信的套接字(通过移动语义获取所有权)
*/
void handle_client(tcp::socket socket) {
try {
char data[1024]; // 存储客户端消息的缓冲区
// 持续接收客户端消息
while (true) {
std::memset(data, 0, sizeof(data)); // 清空缓冲区
boost::system::error_code error;
// 从客户端读取消息
// read_some() 会阻塞直到有数据可读或发生错误
size_t length = socket.read_some(boost::asio::buffer(data), error);
// 检查连接状态
if (error == boost::asio::error::eof) break; // 客户端正常关闭连接
else if (error) throw boost::system::system_error(error); // 发生其他