# C++系列课：从0到1手写Linux高性能网络编程框架课程

*Published:* 2024-05-28
*Author:* 客服001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2024年12月29日，已超过 180天没有更新



**掌握C++11新特性综合运用，及网络框架、通讯协议设计及原理，助力在网络编程领域技术有更大的突破！**

[![](https://www.xarjtc.com/wp-content/uploads/2024/05/1e29f569b9a25de.webp)](https://www.xarjtc.com/wp-content/uploads/2024/05/1e29f569b9a25de.webp)

**你将学到：**

- 独立完成事件驱动网络编程框架
- 掌握服务间RPC通信协议设计
- 掌握事件驱动编程的原理及实现
- 掌握WebRTC P2P核心通信流程
- 掌握基于GO的HTTP框架设计
- 掌握C++11新特性综合运用

**简介：**

> 深度掌握网络编程是逆袭成为高阶开发者的秘密法宝，本课程深度讲解基于C++的Linux高性能事件驱动网络编程框架的设计方法及技巧，课程中采取渐进迭代的授课方式，配合C++11新特性的使用，以及网络编程理论的深度讲解，并手把手带着大家落地实现，助力在网络编程领域有更大的技术提升！

**适合人群**

后端开发工程师

对网络/多线程编程感兴趣

期望更深入掌握网络编程底层

**技术储备**

掌握Linux系统的基本使用

掌握C/C++/Java/GO等任意一门

**环境参数**

开发工具 vim

操作系统 Linux，Ubuntu

**章节目录：**

第1章 事件驱动网络编程框架--课程导学

3 节｜33分钟

展开

视频：

1-1 课程导学

试看

09:50

视频：

1-2 如何快速进阶后端高级工程师

试看

13:11

视频：

1-3 课程效果演示

试看

09:04

第2章 事件驱动编程的基础理论和典型应用分析

5 节｜32分钟

收起

视频：

2-1 网络编程中的同步与异步、阻塞与非阻塞

07:41

视频：

2-2 什么是事件驱动编程？

07:16

视频：

2-3 事件驱动编程优缺点分析

05:48

视频：

2-4 Nginx事件驱动模型解析

04:25

视频：

2-5 Redis事件驱动模型解析

06:38

第3章 如何自主研发一套网络框架？

2 节｜12分钟

收起

视频：

3-1 自主研发网络框架需要考虑哪些问题？

06:41

视频：

3-2 针对WebRTC实时音视频场景如何设计一套服务框架？

04:23

第4章 带你快速入门WebRTC技术

12 节｜119分钟

展开

视频：

4-1 开发环境准备

13:18

视频：

4-2 WebRTC P2P通信流程

13:58

视频：

4-3 屏幕共享项目-用golang搭建静态资源服务

16:04

视频：

4-4 屏幕共享项目-获取证书和支持https访问

09:44

视频：

4-5 屏幕共享项目-设计UI界面

08:05

视频：

4-6 屏幕共享项目-获取屏幕共享视频流

08:07

视频：

4-7 屏幕共享项目-实现WebRTC推流

15:34

视频：

4-8 屏幕共享项目-实现WebRTC拉流（一）

05:34

视频：

4-9 屏幕共享项目-实现WebRTC拉流（二）

07:59

视频：

4-10 屏幕共享项目-实现WebRTC拉流（三）

05:53

视频：

4-11 屏幕共享项目-实现停止推流和拉流

08:37

视频：

4-12 本章小结

05:46

第5章 轻量级http开发框架的设计和实现

17 节｜198分钟

展开

视频：

5-1 本章导学

01:57

视频：

5-2 WebRTC推流SDP交换模型

13:09

视频：

5-3 轻量级http基础框架设计和实现（一）

13:01

视频：

5-4 轻量级http基础框架设计和实现（二）

13:16

视频：

5-5 引入google的glog库

15:41

视频：

5-6 丰富和完善log组件功能

11:15

视频：

5-7 设计框架ComLog类

10:45

视频：

5-8 填充通用日志字段信息

12:14

视频：

5-9 添加统计耗时功能

11:23

视频：

5-10 添加conf组件

14:06

视频：

5-11 利用conf优化框架实现

06:09

视频：

5-12 支持https和静态资源访问

14:22

视频：

5-13 WebRTC推流端UI界面设计（一）

13:52

视频：

5-14 WebRTC推流端UI界面设计（二）

13:51

视频：

5-15 WebRTC推流信令请求的发送和处理

13:49

视频：

5-16 WebRTC推流信令请求参数解析和异常处理（一）

07:00

视频：

5-17 WebRTC推流信令请求参数解析和异常处理（二）

11:39

第6章 服务间RPC通信协议的设计和实现

6 节｜68分钟

展开

视频：

6-1 什么是RPC

06:46

视频：

6-2 RPC通信协议设计

11:13

视频：

6-3 RPC Client接口设计和功能实现（一）

18:48

视频：

6-4 RPC Client接口设计和功能实现（二）

09:27

视频：

6-5 RPC Client负载均衡实现

14:51

视频：

6-6 本章小结

06:55

第7章 事件驱动网络编程框架--基础组件，掌握标准后台服务的核心构成

10 节｜140分钟

展开

视频：

7-1 事件驱动编程基本概念及其特点介绍

16:36

视频：

7-2 音视频分发服务的工作模型设计

04:47

视频：

7-3 搭建音视频分发服务

16:17

视频：

7-4 添加conf组件

11:48

视频：

7-5 解析YAML格式的配置文件

13:52

视频：

7-6 添加log组件（一）

20:41

视频：

7-7 添加log组件（二）

18:20

视频：

7-8 实现log异步写入文件（一）

12:35

视频：

7-9 实现log异步写入文件（二）

18:24

视频：

7-10 解决log写入文件失败的问题

05:52

第8章 事件驱动网络编程框架--事件循环，掌握事件循环的综合运用技巧

10 节｜128分钟

展开

视频：

8-1 本章介绍和信令服务框架搭建

18:18

视频：

8-2 创建TCP Server

15:24

视频：

8-3 libev快速入门

08:36

视频：

8-4 封装EventLoop类

19:29

视频：

8-5 实现创建IO事件

10:41

视频：

8-6 实现启动IO事件

05:06

视频：

8-7 实现停止和删除IO事件

03:46

视频：

8-8 实现定时器事件

10:49

视频：

8-9 向TCP Server添加事件循环

13:33

视频：

8-10 启动和停止TCP Server

22:13

第9章 事件驱动网络编程框架--网络数据读写，掌握非阻塞网络IO的读写技术

13 节｜180分钟

展开

视频：

9-1 创建SignalingWorker

11:09

视频：

9-2 完善SignalingWorker并进行管理

15:10

视频：

9-3 分发新连接给SignalingWorker进行处理

17:44

视频：

9-4 无锁队列的原理和实现

19:39

视频：

9-5 创建TcpConnection类

18:12

视频：

9-6 监听TcpConnection读事件

10:09

视频：

9-7 RPC客户端写入信令转发数据

09:10

视频：

9-8 从TCP连接读取协议头

13:17

视频：

9-9 从TCP连接读取消息体

22:01

视频：

9-10 处理TCP连接超时情况-

19:00

视频：

9-11 TCP连接资源清理

02:33

视频：

9-12 解析json格式的数据体

15:52

视频：

9-13 根据命令号处理解析后的数据

05:51

第10章 事件驱动网络编程框架--多Server协同工作，掌握多Server的协同处理技术

12 节｜177分钟

展开

视频：

10-1 本章核心内容

02:44

视频：

10-2 创建RtcServer类

16:54

视频：

10-3 实现RtcServer的启动和停止

12:53

视频：

10-4 处理SignalingWorker发送的消息

10:37

视频：

10-5 创建RtcWorker类

13:49

视频：

10-6 实现RtcWorker的消息处理

15:59

视频：

10-7 分配请求给RtcWorker进行处理

20:57

视频：

10-8 RtcWorker返回响应结果

17:54

视频：

10-9 SignalingWorker构造响应包-

14:57

视频：

10-10 SignalingWorker发送响应包

21:28

视频：

10-11 信令服务读取响应结果

12:20

视频：

10-12 信令服务返回处理结果给客户端

15:40

第11章 其他场景如何使用框架提升开发效率呢？

2 节｜13分钟

展开

视频：

11-1 长连接服务场景的运用解析

09:29

视频：

11-2 音视频实时分发服务场景的运用解析

02:41

第12章 课程回顾与总结

1 节｜14分钟

展开

视频：

12-1 课程回顾与总结

13:30

本课程已完结