cpp_server 是一个用于学习 C++ 网络服务器编程的实践仓库。项目从 Socket 基础、TCP 消息封装、多线程网络程序开始,逐步探索 select、IOCP、epoll 等网络通信模型,以及服务端性能优化相关问题。
- 掌握多平台 C++ 程序开发、调试和发布流程。
- 理解主流平台下 C++ TCP 网络通信的基本流程。
- 学习 select、IOCP、epoll 等网络模型,并根据场景选择合适方案。
- 逐步构建高性能服务器,从少量连接扩展到高并发连接。
- 练习多线程、内存管理、内存池、对象池等服务端基础能力。
| 平台 | 环境 |
|---|---|
| Windows | Windows 11 + Visual Studio 2022 |
| Linux | Ubuntu 20.04 64-bit |
| macOS | Xcode |
辅助工具:VMware、Git、Beyond Compare 等。
src/ Visual Studio 示例工程和 C++ 源码
doc/ 网络编程学习笔记与阶段性文档
HelloSocket: Socket 基础示例HelloThread: 多线程基础示例EasyTcpClient: TCP 客户端封装实践EasyTcpServer: TCP 服务端封装实践VCProjectTemplate: Visual Studio 工程模板实践
- Socket 基础 API
- TCP 粘包相关
- Select 模型
- 多线程网络程序
- 结构化网络消息
- 面向对象封装
- 跨平台移植
- 高精度计数器测量处理能力
- 建立易于管理的 Windows VC 工程
- 虚拟机安装 MacOS 系统
- 搭建不同平台下的 C++ 开发环境。
- 学习 Socket 网络编程基础。
- 封装结构化 TCP 消息。
- 引入多线程处理客户端连接。
- 对比 select、IOCP、epoll 等模型。
- 通过压测和计时工具分析性能瓶颈。
This project is licensed under the MIT License. See LICENSE for details.
Unless otherwise noted, third-party dependencies, assets, course/tutorial materials, and externally sourced resources remain under their original licenses.