直面高并发网络编程的深层难点
这门课主要解决初学者在构建高并发服务器时,往往只懂 API 调用而不懂底层架构的问题。它不依赖现成框架,而是从 C 语言基础出发,逐步过渡到 C++ 实现,完整拆解多反应堆模式(Multi-Reactors)的设计逻辑。不同于市面上单纯讲解套接字或线程模型的碎片化教程,这里的核心在于如何像 Muduo 那样处理多线程与事件循环的交互,以及如何在应用层封装 HTTP 协议以支撑真实的浏览器请求。如果你之前写过单线程的 Echo 服务器,但面对“如何将文件 IO 与连接处理分离”、“如何避免线程竞争”或“HTTP 解析状态机怎么设计”这些问题感到困惑,那么这门课正是为了填补这些认知缺口。适合具备基础网络知识的进阶学习者
这门课不适合完全不懂 TCP/IP 或 Linux 系统调用的纯小白,你需要先理解什么是阻塞与非阻塞 IO、进程与线程的基本区别,以及基本的网络通信流程。在此基础上,课程会带你从零开始手写网络库,无论是使用 C 还是 C++,目的都是让你看清每一行代码背后的系统机制。建议你先重点关注“事件驱动模型”和“线程池管理”这两个核心模块。很多学习者容易在这里踩坑,比如错误地假设线程数量越多性能越好,或者忽略了 Reactor 线程中不应处理耗时任务的原则。通过仔细研读这部分内容,你能建立起正确的并发思维,避免在后续开发中产生逻辑混乱。学完后应能独立构建的实战能力
完成学习后,你应具备独立搭建一套基于 C/C++ 的高并发 B/S 架构服务器的能力。这意味着你不仅能写出能跑的代码,还能解释为什么采用这种架构,以及如何通过 HTTP 协议解析处理复杂的客户端请求。你应当能够复现类似 Muduo 的核心功能,包括多反应架构下的负载均衡、请求的异步处理机制,以及基于 epoll 或 kqueue 的高效事件监听。在资料配合练习方面,不要只看视频,务必尝试在本地环境中复现课程中的代码片段,特别是要手动修改并发参数观察性能变化。可以尝试给写好的服务器添加简单的日志记录功能,或者模拟断连重连场景,以此验证你对错误处理和连接管理真正掌握了。最终目标是你能脱离教程,面对一个具体的并发需求时,知道如何设计线程模型和事件循环,从而写出健壮的网络服务程序。课程介绍
本课程深入讲解了构建多反应堆高并发网络服务器的全过程,总时长超24小时(1080P高清)。从零开始,以C语言和C++分别实现类似Muduo网络库的服务器。应用层采用Http协议,打造出B/S架构模型,能处理浏览器请求。课程详细剖析每个环节,无论是初学者还是有一定基础者,都能掌握多反应堆高并发网络服务器的构建精髓,在实践与理论结合中,提升网络编程能力。
课程目录
QQ_1759657864609.png 2025-10-5 17:55 上传 课程介绍: 本课程深入讲解了构建多反应堆高并发网络服务器的全过程,总时长超24小时(1080P高清)。从零开始,以C语言和C++分别实现类似Muduo网络库的服务器。应用层采用Http协议,打造出B/S架构模型,能处理浏览器请求。课程详细剖析每个环节,无论是初学者还是有一定基础者,都能掌握多反应堆高并发网络服务器的构建精髓,在实践与理论结合中,提升网络编程能力。 课程目录: 001. 项目概述以及要求 .mp4 43.61M 002. 项目效果展示 .mp4 29.23M 003. 关于项目业务层的说明 .mp4 27.86M 004. 多反应堆模型结构概述 .mp4 69.64M 005. 在VS中创建基于Linux的项目 .mp4 24.37M 006. 初始化服务器端用于监听的套接字 .mp4 41.20M 007. epoll 工作模型的雏形 .mp4 43.50M 008. 和客户端建立新连接 .mp4 23.01M 009. http的get请求数据块的格式 .mp4 48.38M 010. http的post请求数据块的格式 .mp4 30.35M 011. http响应消息的数据格式 .mp4 14.45M 012. http的状态码和如何指定content-type .mp4 23.35M 013. 接收客户端的http请求消息 .mp4 34.22M 014. sscanf 函数的使用 .mp4 41.85M 015. 解析请求行 .mp4 41.32M 016. 发送文件的两种方式 .mp4 38.21M 017. 组织http响应的数据块头 .mp4 18.80M 018 通过http响应消息发送文件 .mp4 29.37M 019. Linux 中遍历目录的两种方式 .mp4 40.00M 020. 发送目录-上 .mp4 39.99M 021. 发送目录-下 .mp4 38.25M 022. 代码的补充和编译 .mp4 30.20M 023. 程序测试和部分bug的修改 .mp4 59.81M 024-非阻塞模式下关于sendfile函数的说明 .mp4 22.38M 025. 解决浏览器无法访问带特殊字符的文件的问题 .mp4 63.89M 026. 添加多线程处理 .mp4 55.72M 027. 第2阶段模块功能概述 .mp4 25.09M 028. Channel 模块的实现 .mp4 45.15M 029. ChannelMap 模块的实现 - 上 .mp4 26.03M 030. ChannelMap 模块的实现 - 下 .mp4 34.28M 031. Dispatcher 模块的实现思路 .mp4 49.69M 032. Dispatcher 的定义 .mp4 56.68M 033. EpollDispatcher 的实现 - 上 .mp4 36.53M 034. EpollDispatcher 的实现 - 中 .mp4 42.00M 035. EpollDispatcher 的实现 - 下 .mp4 22.11M 036. PollDispatcher 的实现 - 上 .mp4 45.79M 037. PollDispatcher 的实现 - 下 .mp4 34.46M 038. SelectDispatcher 的实现 .mp4 80.19M 039. EventLoop 模块的剖析 .mp4 37.24M 040. EventLoop 的初始化 .mp4 57.42M 041. 启动 EventLoop .mp4 17.73M 042. 在 EVentLoop 中处理被激活的文件描述符的事件 .mp4 39.15M 043. 往 EventLoop 的任务队列中添加新任务 .mp4 64.63M 044. 主线程给子线程添加任务以及如何处理该任务 .mp4 72.94M 045. 处理任务队列中的任务 .mp4 33.85M 046. 将任务队列中的任务添加到 Dispatcher 的检测集合中 .mp4 29.47M 047. 任务队列中节点在 Dispatcher 中的删除和修改 .mp4 34.96M 048. 子线程 WorkerThread 的实现 .mp4 65.89M 049. 线程池 ThreadPool 的初始化 .mp4 32.91M 050. 线程池的启动和从线程池中取出一个反应堆实例 .mp4 47.47M 051. Buffer 的创建和销毁 .mp4 29.32M 052. Buffer 的扩容 .mp4 64.48M 053. Buffer 的数据写入-直接写 .mp4 25.49M 054. 通过 Buffer 接收套接字数据 .mp4 40.67M 055. 创建并初始化 TcpServer 实例 .mp4 40.30M 056. 启动 TcpServer .mp4 34.29M 057. 主线程反应堆模型的事件添加和处理详解 .mp4 50.08M 058. 创建一个 TcpConnection 实例 .mp4 47.43M 059. 在 TcpConnection 接收客户端数据 .mp4 16.74M 060. HttpRequest 的定义和初始化 .mp4 41.43M 061. HttpRequest 资源重置和销毁 .mp4 29.57M 062. 添加和查找 HttpRequest 请求头 .mp4 40.66M 063. 解析请求行(通过指针方式解析非 sscanf 方式) .mp4 81.61M 064. 优化解析请求行的代码 .mp4 60.24M 065. 解析请求头并存储 .mp4 57.47M 066. 解析完整的 http 请求协议 .mp4 38.66M 067. 处理 http 请求 - 上 .mp4 44.32M 068. HttpResponse 的定义和初始化 .mp4 56.90M 069. HttpREsponse 添加响应头和内存释放 .mp4 23.45M 070. 组织 HttpResponse 响应消息 .mp4 51.31M 071. 处理 Http 请求 - 下 .mp4 60.60M 072. 修改发送目录和文件的函数 .mp4 35.35M 073. 在 TcpConnection 中接收并解析 Http 请求消息 .mp4 39.67M 074. 给客户端回复数据的两种方式-上 .mp4 66.42M 075. 给客户端回复数据的两种方式 - 下 .mp4 65.99M 076. 内存资源的释放 .mp4 64.46M 077. 程序的编译和错误的修改 - 上 .mp4 99.69M 078. 程序的编译和bug的修改 - 下 .mp4 46.39M 079. 启动服务器和添加日志功能 .mp4 29.91M 080. 程序的调试和bug修改 - 上 .mp4 64.50M 081. 程序的调试和bug修改 - 下 .mp4 80.09M 082. 使用CPP重构项目-前言 .mp4 46.37M 083. 重构 Channel 类 .mp4 62.00M 084. 重构 Dispatcher 类 .mp4 48.98M 085. 重构 EpollDispatcher 类 .mp4 74.24M 086. 重构 PollDispatcher 类 .mp4 53.73M 087. 重构 SelectDispatcher 类 .mp4 45.21M 088. 重构 EventLoop 类 - 1 .mp4 66.19M 089. 重构 EventLoop 类 - 2 .mp4 52.42M 090. 重构 EventLoop l类 - 3 .mp4 57.14M 091. 重构 EventLoop 类 - 4 .mp4 68.57M 092. 重构 EventLoop 类 - 5 .mp4 85.68M 093. 重构 ThreadWorker 类 .mp4 61.27M 094. 重构 ThreadPool 类 .mp4 61.62M 095. 重构 TcpServer 类 .mp4 63.46M 096. 重构 Buffer 类 - 上 .mp4 30.17M 097. 重构 Buffer 类 - 下 .mp4 64.32M 098. 重构 HttpRequest 类 - 1 .mp4 56.44M 099. 重构 HttpRequest 类 - 2 .mp4 91.62M 100. 重构 HttpRequest 类 - 3 .mp4 50.56M 101. 重构 HttpRequest 类 - 4 .mp4 76.28M 102. 重构 HttpResponse 类 .mp4 84.67M 103. 重构 HttpResponse 类 - 续 .mp4 32.25M 104. 重构 TcpConnection 类 - 上 .mp4 88.69M 105. 重构 TcpConnection 类 - 下 .mp4 46.88M 106. 多反应堆服务器事件处理流程梳理 .mp4 67.96M 107. 程序的编译和语法上的bug修改 .mp4 30.30M 108. 测试和bug修改 .mp4 37.38M | └──109. 内容更正 .mp4 33.56M └──资料 Http Web 服务器.pdf 768.85kb Http_高并发服务器 概述.pdf 405.08kb 代码.exe 2.89M 图解HTTP-彩色版.pdf 13.11M | └──项目模块-xmind.pdf 151.20kb




