课程定位:填补从“调库”到“造轮子”的认知断层

对于后端开发者而言,熟练调用 Boost.Asio 或 Muduo 等成熟网络库,与理解其底层设计逻辑之间,存在一道明显的职业门槛。这门课的核心价值,不在于教你如何使用工具,而在于引导你用 C++11 特性,从零开始构建一个完整的高性能 Linux 网络编程框架。它直面一个普遍痛点:很多开发者写过无数 HTTP 请求,却说不清楚 Event Loop 如何调度、Epoll 边缘触发与水平触发在代码层面有何实质差异、以及 Reactor 模式如何解耦 I/O 与业务处理。

课程采用渐进迭代的授课方式,摒弃了堆砌理论的枯燥讲述,而是通过手写代码的方式,将网络编程理论转化为可执行的工程实践。这种“先做再懂”的路径,能帮助你建立对内存管理、连接生命周期以及线程模型的真实体感,是通往高级后端开发者的必经之路。

适合人群与前置基础

本课程并非面向零基础初学者,而是定位于有一定 C++ 基础、希望深入理解网络编程原理的在职工程师或转行者。你需要熟悉 C++ 的基本语法,并对 Linux 环境下的基本操作有一定了解。如果你之前仅停留在“调用接口”层面,对于智能指针、右值引用、Lambda 表达式等 C++11 新特性在实际工程中的运用尚不熟悉,这门课将是一个极佳的强化场景。课程会重点讲解如何利用现代 C++ 特性来简化内存管理和异步逻辑,帮助你摆脱传统 C++ 编程中繁琐且易错的资源管理负担。

学习路径与资料配合建议

建议的学习策略是“理论同步,代码先行”。不要急于求成一次性看完所有视频,而应跟随课程节奏,亲手敲出每一个模块。初期重点攻克 I/O 多路复用机制(Epoll)的实现细节,理解文件描述符如何被内核高效管理;中期深入 Reactor 模式的设计,理清主从线程模型下的数据流转;后期则关注业务逻辑的解耦与扩展性设计。

在练习环节,务必重视调试过程。网络编程的 Bug 往往隐蔽且难以复现,通过单步调试观察连接状态的变化、缓冲区的数据流动,比单纯阅读代码更能加深理解。学完后,你应当能够独立设计并实现一个支持高并发、低延迟的网络服务框架,掌握从 socket 创建到业务处理的全链路闭环能力,从而在面对复杂分布式系统开发时,具备更底层的架构视野和优化手段。

课程目录

├── 1-事件驱动网络编程框架–课程导学/ │ ├── [ 24M] 1-1 课程导学 │ ├── [ 23M] 1-2 如何快速进阶后端高级工程师 │ └── [ 45M] 1-3 课程效果演示 ├── 2-事件驱动编程的基础理论和典型应用分析/ │ ├── [ 20M] 2-1 网络编程中的同步与异步、阻塞与非阻塞 │ ├── [ 12M] 2-2 什么是事件驱动编程? │ ├── [7.8M] 2-3 事件驱动编程优缺点分析 │ ├── [7.2M] 2-4 Nginx事件驱动模型解析 │ └── [ 11M] 2-5 Redis事件驱动模型解析 ├── 3-如何自主研发一套网络框架?/ │ ├── [ 12M] 3-1 自主研发网络框架需要考虑哪些问题? │ └── [6.5M] 3-2 针对WebRTC实时音视频场景如何设计一套服务框架? ├── 4-带你快速入门WebRTC技术/ │ ├── [ 66M] 4-1 开发环境准备 │ ├── [ 50M] 4-2 WebRTC P2P通信流程 │ ├── [ 48M] 4-3 屏幕共享项目-用golang搭建静态资源服务 │ ├── [ 38M] 4-4 屏幕共享项目-获取证书和支持https访问 │ ├── [ 21M] 4-5 屏幕共享项目-设计UI界面 │ ├── [ 22M] 4-6 屏幕共享项目-获取屏幕共享视频流 │ ├── [ 55M] 4-7 屏幕共享项目-实现WebRTC推流 │ ├── [ 16M] 4-8 屏幕共享项目-实现WebRTC拉流(一) │ ├── [ 31M] 4-9 屏幕共享项目-实现WebRTC拉流(二) │ ├── [ 23M] 4-

10 屏幕共享项目-实现WebRTC拉流(三) │ ├── [ 31M] 4-

11 屏幕共享项目-实现停止推流和拉流 │ └── [ 28M] 4-

12 本章小结 ├── 5-轻量级http开发框架的设计和实现/ │ ├── [3.7M] 5-1 本章导学 │ ├── [ 57M] 5-2 WebRTC推流SDP交换模型 │ ├── [ 41M] 5-3 轻量级http基础框架设计和实现(一) │ ├── [ 33M] 5-4 轻量级http基础框架设计和实现(二) │ ├── [ 55M] 5-5 引入google的glog库 │ ├── [ 51M] 5-6 丰富和完善log组件功能 │ ├── [ 32M] 5-7 设计框架ComLog类 │ ├── [ 35M] 5-8 填充通用日志字段信息 │ ├── [ 31M] 5-9 添加统计耗时功能 │ ├── [ 34M] 5-

10 添加conf组件 │ ├── [ 15M] 5-

11 利用conf优化框架实现 │ ├── [ 41M] 5-

12 支持https和静态资源访问 │ ├── [ 33M] 5-

13 WebRTC推流端UI界面设计(一) │ ├── [ 37M] 5-

14 WebRTC推流端UI界面设计(二) │ ├── [ 39M] 5-

15 WebRTC推流信令请求的发送和处理 │ ├── [ 17M] 5-

16 WebRTC推流信令请求参数解析和异常处理(一) │ └── [ 33M] 5-

17 WebRTC推流信令请求参数解析和异常处理(二) ├── 6-服务间RPC通信协议的设计和实现/ │ ├── [ 14M] 6-1 什么是RPC │ ├── [ 48M] 6-2 RPC通信协议设计 │ ├── [ 50M] 6-3 RPC Client接口设计和功能实现(一) │ ├── [ 24M] 6-4 RPC Client接口设计和功能实现(二) │ ├── [ 48M] 6-5 RPC Client负载均衡实现 │ └── [ 20M] 6-6 本章小结 ├── 7-事件驱动网络编程框架–基础组件,掌握标准后台服务的核心构成/ │ ├── [ 28M] 7-1 事件驱动编程基本概念及其特点介绍 │ ├── [ 15M] 7-2 音视频分发服务的工作模型设计 │ ├── [ 70M] 7-3 搭建音视频分发服务 │ ├── [ 41M] 7-4 添加conf组件 │ ├── [ 42M] 7-5 解析YAML格式的配置文件 │ ├── [ 69M] 7-6 添加log组件(一) │ ├── [ 73M] 7-7 添加log组件(二) │ ├── [ 41M] 7-8 实现log异步写入文件(一) │ ├── [ 49M] 7-9 实现log异步写入文件(二) │ └── [ 17M] 7-

10 解决log写入文件失败的问题 ├── 8-事件驱动网络编程框架–事件循环,掌握事件循环的综合运用技巧/ │ ├── 【更多it资源 www.】 │ ├── [ 60M] 8-1 本章介绍和信令服务框架搭建 │ ├── [ 42M] 8-2 创建TCP Server │ ├── [ 27M] 8-3 libev快速入门 │ ├── [ 49M] 8-4 封装EventLoop类 │ ├── [ 28M] 8-5 实现创建IO事件 │ ├── [ 15M] 8-6 实现启动IO事件 │ ├── [9.9M] 8-7 实现停止和删除IO事件 │ ├── [ 35M] 8-8 实现定时器事件 │ ├── [ 42M] 8-9 向TCP Server添加事件循环 │ └── [ 74M] 8-

10 启动和停止TCP Server ├── 9-事件驱动网络编程框架–网络数据读写,掌握非阻塞网络IO的读写技术/ │ ├── [ 29M] 9-1 创建SignalingWorker │ ├── [ 50M] 9-2 完善SignalingWorker并进行管理 │ ├── [ 52M] 9-3 分发新连接给SignalingWorker进行处理 │ ├── [ 62M] 9-4 无锁队列的原理和实现 │ ├── [ 54M] 9-5 创建TcpConnection类 │ ├── [ 35M] 9-6 监听TcpConnection读事件 │ ├── [ 29M] 9-7 RPC客户端写入信令转发数据 │ ├── [ 42M] 9-8 从TCP连接读取协议头 │ ├── [ 86M] 9-9 从TCP连接读取消息体 │ ├── [ 89M] 9-

10 处理TCP连接超时情况- │ ├── [8.0M] 9-

11 TCP连接资源清理 │ ├── [ 57M] 9-

12 解析json格式的数据体 │ └── [ 22M] 9-

13 根据命令号处理解析后的数据 ├── 10-事件驱动网络编程框架–多Server协同工作,掌握多Server的协同处理技术/ │ ├── [5.1M] 10-1 本章核心内容 │ ├── [ 50M] 10-2 创建RtcServer类 │ ├── [ 42M] 10-3 实现RtcServer的启动和停止 │ ├── [ 34M] 10-4 处理SignalingWorker发送的消息 │ ├── [ 39M] 10-5 创建RtcWorker类 │ ├── [ 54M] 10-6 实现RtcWorker的消息处理 │ ├── [ 73M] 10-7 分配请求给RtcWorker进行处理 │ ├── [ 63M] 10-8 RtcWorker返回响应结果 │ ├── [ 52M] 10-9 SignalingWorker构造响应包- │ ├── [ 85M] 10-

10 SignalingWorker发送响应包 │ ├── [ 35M] 10-

11 信令服务读取响应结果 │ └── [ 54M] 10-

12 信令服务返回处理结果给客户端 ├── 11-其他场景如何使用框架提升开发效率呢?/ │ ├── [ 15M] 11-1 长连接服务场景的运用解析 │ └── [3.8M] 11-2 音视频实时分发服务场景的运用解析 ├── 12-课程回顾与总结/ │ └── [ 41M] 12-1 课程回顾与总结