# CppServer **Repository Path**: yubihua/cpp-server ## Basic Information - **Project Name**: CppServer - **Description**: No description available - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-23 - **Last Updated**: 2025-10-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Echo Server - 基于 muduo 网络库 ## 📁 项目结构 ``` cpp-server/ ├── include/ # muduo 头文件 │ └── muduo/ ├── lib/ # muduo 静态库 │ ├── libmuduo_base.a │ └── libmuduo_net.a ├── src/ # 源代码 │ └── echo_server.cpp ├── build/ # 编译输出(自动生成) │ └── echo_server ├── Makefile # 编译配置 ├── build.sh # 编译脚本 └── README.md # 本文件 ``` ## 🚀 快速开始 ### 1. 编译 **方式 1:使用编译脚本(推荐)** ```bash chmod +x build.sh ./build.sh ``` **方式 2:使用 Make** ```bash make ``` ### 2. 运行 **默认端口 8080:** ```bash ./build/echo_server ``` **自定义端口:** ```bash ./build/echo_server 9999 ``` **使用 make 运行:** ```bash make run ``` ### 3. 测试 **方式 1:使用 telnet** ```bash telnet localhost 8080 ``` **方式 2:使用 nc** ```bash nc localhost 8080 ``` **方式 3:使用 echo 管道** ```bash echo "Hello, muduo!" | nc localhost 8080 ``` ## 📝 代码说明 ### 核心功能 1. **监听端口**:默认 8080(可通过命令行参数修改) 2. **多线程**:4 个 IO 线程处理连接 3. **回显消息**:将收到的数据原样返回 4. **连接管理**:自动处理连接建立和断开 ### 主要组件 ```cpp EventLoop loop; // 事件循环(Main Reactor) InetAddress listenAddr; // 监听地址 TcpServer server; // TCP 服务器 EchoServer echoServer; // Echo 服务器逻辑 ``` ### 回调函数 - `onConnection()` - 连接建立/断开时调用 - `onMessage()` - 收到消息时调用 ## 🔧 Make 命令 ```bash make # 编译 make clean # 清理 make run # 编译并运行 make help # 显示帮助 ``` ## 📊 性能特性 - ✅ 基于 Reactor 模式 - ✅ 主从 Reactor 多线程架构 - ✅ epoll LT 模式 - ✅ 非阻塞 IO - ✅ 自动缓冲区管理 - ✅ 高并发支持 ## 🎯 扩展建议 基于此示例,您可以: 1. **修改消息处理逻辑** - 实现聊天服务器 - 实现 HTTP 服务器 - 实现游戏服务器 2. **添加功能** - 用户认证 - 消息协议 - 数据库集成 - 日志记录 3. **性能优化** - 调整线程数 - 使用对象池 - 批量处理 ## 📚 参考资料 - muduo 源码:https://github.com/chenshuo/muduo - 技术文档:/home/muduo-server/docs/ - 开发规范:/home/muduo-server/.cursorrules ## ⚙️ 依赖库 - **libmuduo_net.a** - 网络库(9.6M) - **libmuduo_base.a** - 基础库(3.5M) - **pthread** - POSIX 线程库 ## 🐛 故障排除 ### 编译错误 ```bash # 确保使用 GCC 11 source /opt/rh/devtoolset-11/enable # 重新编译 make clean && make ``` ### 端口被占用 ```bash # 使用不同端口 ./build/echo_server 9999 ``` ### 无法连接 ```bash # 检查服务器是否运行 ps aux | grep echo_server # 检查端口是否监听 netstat -tlnp | grep 8080 ``` --- ### 库打包以及分发以及使用 1. 开发者 A 打包(已完成) cd /home/cpp-server make install tar -czf GameServerFramework-1.0.0.tar.gz install/ 2. 开发者 B 使用(已验证) tar -xzf GameServerFramework-1.0.0.tar.gz # 编写代码,设置 CMAKE_PREFIX_PATH mkdir build && cd build && cmake .. && make --- **祝您学习愉快!** 🎉