**C++网络编程实战导读**

本课程的核心价值在于突破普通 C++ 开发仅会调用库而不懂底层原理的局限,通过从零手写 Reactor 模型服务器,深入理解高并发、高性能框架的设计逻辑。Reactor 是 Nginx、Redis 等主流网络框架的核心架构,掌握它意味着你具备了处理千万级并发的底层思维,而不仅仅是堆砌代码。课程重点解决“如何脱离简单的 Socket 调用,构建真正具备生产级能力的网络引擎”这一痛点。适合具有一定 C++ 基础,熟悉基本语法但尚未深入操作系统内核机制,或在面试中因无法讲清线程池、智能指针及事件驱动细节而卡壳的中高级开发者。对于零基础或仅会 Python/Java 且不想深入 C++ 底层的学习者,这门课会因前置知识门槛较高而显得晦涩。

建议优先研习关于 Linux 系统编程的章节。在 Windows 或 macOS 上写网络程序与在 Linux 上差异巨大,课程强调“脱离 Linux 谈并发没有意义”,因此需先补齐 Linux 环境下的进程、线程、多路复用(epoll)等知识。不要试图跳过系统层直接看高级框架设计,务必理解文件描述符、非阻塞 I/O 以及事件通知机制。随后重点攻克 Reactor 模式的具体实现,包括如何管理线程、如何避免竞态条件、以及如何利用 C++11 中的智能指针管理内存生命周期。这部分是区分“会写”与“精通”的关键。

学完本课程,你能独立设计并实现一个支持百万级并发的 TCP 服务器框架。你不仅能手写 Reactor,还能清晰解释其内部数据流向,掌握线程池的动态调节策略,并能熟练运用 C++11 高阶特性优化网络代码。在实际工作中,这意味着你能接手底层网关、RPC 框架或高频交易系统的核心模块开发,具备排查高负载下网络瓶颈的能力。

资料配合练习时,不要只看视频。务必在 Linux 环境下动手复现每一节代码,重点调试 epoll 的异常捕获和线程同步问题。建议每完成一个模块就阅读底层源码,对比自己手写的代码与成熟框架(如 Nginx 源码片段)的差异。遇到编译报错或死锁,这是绝佳的学习机会,切勿直接复制答案。将手写的小型服务器部署到云服务器进行压测,观察在高并发下的内存泄漏或线程阻塞情况,这种基于真实场景的调优经验,才是本课程带来的核心职业竞争力增量。

课程目录

百万.png (41.

23 KB,  ) 2024-3-9 13:

07 上传 是否具备高并发、高性能、分布式、事件驱动框架设计能力,是优秀C++中高级工程师的分水岭。本课程通过带大家纯手写一个Reactor服务器( Reactor是大名鼎鼎的redis、nginx、rpc等框架核心模型),让你高效掌握三高框架设计思维,同时让你对C++网络编程、线程、智能指针、C++11标准高阶技术等运用自如,最终倍增编程内功,突破进阶高级工程师技术瓶颈,提升职业核心竞争力。 第1章 C++从0实现百万并发的Reactor服务器-课程概览 1 节|7分钟 展开 第2章 C++工程师必须掌握-脱离Linux操作系统,谈并发没什么意义 9 节|83分钟 收起 视频: 2-1 Linux环境高级编程导学 02:

26 视频: 2-2 Linux的Hello world 11:

13 视频: 2-3 VSCode的安装和配置 14:

30 视频: 2-4 静态库和动态库 11:

20 视频: 2-5 编译规则文件makefile 16:

11 视频: 2-6 main函数的参数 07:

19 视频: 2-7 gdb常用命令 09:

57 视频: 2-8 gdb调试core文件 05:

44 视频: 2-9 gdb调试正在运行中的程序 03:

38 第3章 对网络通讯重要的-Linux的目录、文件和时间操作 4 节|35分钟 收起 视频: 3-1 Linux的时间操作 08:

10 视频: 3-2 Linux的目录操作 06:

24 视频: 3-3 Linux的系统错误 11:

29 视频: 3-4 目录和文件的更多操作 08:

03 第4章 进程控制和进程同步 12 节|136分钟 收起 视频: 4-1 Linux的信号 20:

22 视频: 4-2 进程终止 09:

11 视频: 4-3 调用可执行程序 11:

58 视频: 4-4 创建进程 18:

31 视频: 4-5 僵尸进程 12:

58 视频: 4-6 多进程与信号 07:

29 视频: 4-7 共享内存 09:

21 视频: 4-8 循环队列 17:

12 视频: 4-9 信号量 16:

47 视频: 4-

10 多进程的生产消费者模型 04:

50 视频: 4-

11 pthread线程库 03:

13 视频: 4-

12 UNIX环境高级编程 03:

09 第5章 网络服务器基石-网络编程与网络通讯原理 12 节|161分钟 收起 视频: 5-1 网络编程基础导学 00:

55 视频: 5-2 .第一个网络通讯程序 15:

57 视频: 5-3 基于Linux的文件操作 14:

42 视频: 5-4 socket函数详解 10:

52 视频: 5-5 主机字节序与网络字节序 05:

23 视频: 5-6 万恶的结构体 17:

50 视频: 5-7 封装socket客户端 19:

41 视频: 5-8 封装socket服务端 09:

15 视频: 5-9 实现文件传输功能 20:

57 视频: 5-

10 多进程的服务端 13:

44 视频: 5-

11 三次握手与四次挥手 21:

08 视频: 5-

12 TCP缓存 09:

50 第6章 高并发的基石-I/O多路复用 7 节|98分钟 收起 视频: 6-1 IO多路复用-select模型(上) 20:

47 视频: 6-2 IO多路复用-select模型(下) 12:

09 视频: 6-3 IO多路复用-poll模型 09:

24 视频: 6-4 IO多路复用-epoll模型 13:

32 视频: 6-5 阻塞&非阻塞的IO 16:

25 视频: 6-6 水平触和&边缘触发 24:

03 视频: 6-7 epoll的原理 01:

20 第7章 开始手把手带大家从0实现百万并发的Reactor服务器 9 节|122分钟 收起 视频: 7-1 从0实现百万并发的Reactor服务器导学 02:

29 视频: 7-2 优化epoll服务端程序,为封装做准备 14:

28 视频: 7-3 优化epoll服务端程序,为封装做准备 06:

13 视频: 7-4 把网络地址协议封装成InetAddress类 14:

03 视频: 7-5 把socket的库函数封装成Socket类 19:

48 视频: 7-6 把epoll的各种操作封装成Epoll类 14:

12 视频: 7-7 把与TCP连接通道封装成Channel类(上) 11:

18 视频: 7-8 把与TCP连接通道封装成Channel类(中) 29:

20 视频: 7-9 把与TCP连接通道封装成Channel类(下) 09:

53 第8章 Reacor模式中的事件驱动机制核心原理 7 节|64分钟 收起 视频: 8-1 用C++11的function实现函数回调 12:

05 视频: 8-2 把事件循环封装成EventLoop类 07:

07 视频: 8-3 把服务端封装成TcpServer类 09:

10 视频: 8-4 把接受客户端连接封装成Acceptor类 11:

55 视频: 8-5 把TCP连接封装成Connection类 07:

34 视频: 8-6 在Channel类中回调Acceptor类的成员函数 06:

59 视频: 8-7 在Acceptor类中回调TcpServer类的成员函数 08:

55 第9章 来,先实现单线程的Reactor服务器的功能 9 节|132分钟 展开 第10章 单线程不能发挥多核CPU的效率-线程池技术实现多线程的Reactor服务器 4 节|58分钟 收起 视频: 10-1 简单优化Buffer 06:

11 视频: 10-2 封装线程池ThreadPool类 13:

35 视频: 10-3 多线程的主从Reactor模型 22:

34 视频: 10-4 增加工作线程 14:

53 第11章 优化Reactor服务器的种种细节 9 节|184分钟 收起 视频: 11-1 在多线程中如何管理资源? 11:

51 视频: 11-2 用shared_ptr管理共享资源 23:

08 视频: 11-3 用unique_ptr管理自己的资源 28:

52 视频: 11-4 用eventfd实现事件通知 17:

40 视频: 11-5 异步唤醒事件循环(上) 15:

16 视频: 11-6 异步唤醒事件循环(下) 24:

03 视频: 11-7 性能优化-阻止浪费,清除空闲的TCP连接(上) 15:

36 视频: 11-8 性能优化-阻止浪费,清除空闲的TCP连接(中) 15:

42 视频: 11-9 性能优化-阻止浪费,清除空闲的TCP连接(下) 31:

00 第12章 真金不怕火炼-在正式PC服务器测试,见证每秒百万并发 4 节|82分钟 收起 视频: 12-1 如何让多线程的网络服务程序体面的退出 21:

19 视频: 12-2 如何设计更高效的Buffer 17:

12 视频: 12-3 性能测试-100万秒的吞吐量 16:

07 视频: 12-4 如何基于Reactor服务器开发业务 26:

33 第13章 课程总结-有问题常来问答区,给你更多帮助。