这门课的名字里有「数据开放平台」,容易让人以为是做 API 网关或后台管理系统。实际上它走的是另一条线:用 C++ 在 Linux 上从零搭一个能扛并发的网络服务端。所谓「数据开放」,指的是服务端对外提供数据访问接口,底层涉及网络通信、事件驱动、连接管理这些硬活。如果你正在找的是"写业务逻辑、调框架"的课,这门可能不对路;如果你想搞清楚一个高并发服务端到底是怎么跑起来的,它值得看。

它解决的是哪个工作场景

实际工作中有一类需求很典型:后端要处理大量并发连接,但团队里没人能说清 epoll 的边缘触发和水平触发到底差在哪、Reactor 模型为什么要那么分层、连接断了之后资源是怎么回收的。这类问题平时靠框架兜着,一旦线上出现连接堆积或 CPU 异常,排查就只能靠猜。

这门课把场景收窄到 Linux 环境下的 C/C++ 网络服务端开发,围绕事件驱动这条主线展开。学完之后,你面对的不再是"调个库就行",而是能自己判断一个并发模型的设计取舍在哪里。

学完能独立做什么

  • 用 epoll 搭建一个可运行的事件循环,理解注册、就绪、分发各自的职责边界
  • 按 Reactor 模式组织代码,把网络 IO 和业务处理拆开,而不是全塞在一个 while 循环里
  • 处理粘包、心跳、连接超时这类真实服务端必须面对的细节
  • 在 Linux 上完成编译、运行、观察资源占用的基本操作,遇到问题知道从哪一层查

注意"独立完成"的边界:课程产出的是一个可演示的服务端 Demo,不是可以直接上生产的产品。它的价值在于让你具备复现和改动的能力,而不是交付一个现成系统。

资料结构和适合的基础

资料是视频加配套笔记的形式,按章节推进,从基础概念逐步过渡到综合实战。笔记的作用是课后复盘,不是替代视频——很多设计思路在讲解过程中才说得清,笔记只能记结论。

适合有这些基础的人:能写 C++ 基本语法和类,了解指针、内存管理的大致概念,在 Linux 下敲过命令、会用 g++ 编译。如果连 socket 编程是什么都没接触过,前面几节会比较吃力,建议先补一段基础再进来。完全零基础的话,这门课不适合作为第一门课。

怎么用这份资料效率更高

不要一次性刷完。每两到三节停下来,把当节的代码自己敲一遍,哪怕照着抄也要跑通,然后写一小段笔记记录"这一节解决了什么问题、留下了什么坑"。这类底层课最容易出现的情况是看的时候都懂,动手就卡在环境或语法上。

综合实战部分建议单独空出时间,不要拆成碎片。最终目标是脱离视频,自己从空文件开始复现一遍核心流程,写进个人项目里。能讲清楚为什么这么设计,比能跑起来更重要。

值不值得学

它适合两类人:一是准备往 C++ 后端或底层方向转,需要一个能拿得出手的项目;二是已经在做相关开发,但对并发模型只停留在会用框架的层面,想补上原理这一环。如果你目前的方向是 Web 业务开发、数据分析或前端,这门课的投入产出比并不高。

另外提醒一点:课程标注为软考考证分类,但内容本身是工程实战,和软考笔试的考点并不重合。冲着考证来的话,先确认清楚自己的目标再决定。

视频目录(156 节)

第01章 课程介绍

课程目录

*   1-1 想了解课程全貌看导学_good.mp4

*   1-2 项目简介_good.mp4

第02章 Linux编程基础(上)

*   2-1 Linux的Hello world.mp4

*   2-2 VSCode的安装和配置.mp4

*   2-3 静态库和动态库.mp4

*   2-4 makefile.mp4

*   2-5 main函数的参数.mp4

*   2-6 gdb常用命令_good.mp4

*   2-7 gdb调试core文件.mp4

*   2-8 gdb调试正在运行中的程序_good.mp4

第03章 Linux编程基础(下)

*   3-1 Linux的时间操作.mp4

*   3-2 Linux的目录操作.mp4

*   3-3 Linux的系统错误.mp4

*   3-4 目录和文件的更多操作.mp4

第04章 进程与进程控制

*   4-1 Linux的信号.mp4

*   4-2 进程终止.mp4

*   4-3 调用可执行程序.mp4

*   4-4 创建进程.mp4

*   4-5 僵尸进程.mp4

*   4-6 多进程与信号.mp4

*   4-7 共享内存.mp4

*   4-8 循环队列.mp4

*   4-9 信号量.mp4

*   4-10 多进程的生产消费者模型.mp4

*   4-11 UNIX环境高级编程.mp4

第05章 C++网络编程基础(上)

*   5-1 第一个网络通讯程序.mp4

*   5-2 基于Linux的文件操作.mp4

*   5-3 socket函数详解.mp4

*   5-4 主机字节序与网络字节序.mp4

*   5-5 万恶的结构体.mp4

*   5-6 封装socket客户端.mp4

第06章 C++网络编程基础(下)

*   6-1 封装socket服务端.mp4

*   6-2 实现文件传输功能.mp4

*   6-3 多进程的服务端.mp4

*   6-4 三次握手与四次挥手.mp4

*   6-5 TCP缓存.mp4

第07章 开发框架介绍

*   7-1 开发框架介绍.mp4

*   7-2 字符串操作(上).mp4

*   7-3 字符串操作(中).mp4

*   7-4 字符串操作(下).mp4

*   7-5 时间操作.mp4

*   7-6 目录和文件操作.mp4

*   7-7 写文件和读文件.mp4

*   7-8 日志文件操作.mp4

*   7-9 网络通讯.mp4

*   7-10 学习要求.mp4

第08章 生成测试数据

*   8-1 业务需求.mp4

*   8-2 搭建程序的框架.mp4

*   8-3 加载站点参数.mp4

*   8-4 模拟观测数据.mp4

*   8-5 把数据写入文件.mp4

第09章 服务程序的监控和调度

*   9-1 业务需求.mp4

*   9-2 调度模块.mp4

*   9-3 进程的心跳.mp4

*   9-4 守护模块.mp4

*   9-5 运行策略.mp4

*   9-6 清理文件.mp4

*   9-7 压缩文件.mp4

第10章 基于ftp协议的文件传输模块

*   10-1 业务需求.mp4

*   10-2 配置ftp服务.mp4

*   10-3 手工执行ftp命令.mp4

*   10-4 封装ftp客户端.mp4

*   10-5 文件下载模块(一).mp4

*   10-6 文件下载模块(二).mp4

*   10-7 文件下载模块(三).mp4

*   10-8 文件上传模块.mp4

第11章 基于tcp协议的文件传输模块

*   11-1 业务需求.mp4

*   11-2 模拟网上银行APP服务端.mp4

*   11-3 tcp短连接和长连接.mp4

*   11-4 上传文件(一).mp4

*   11-5 上传文件(二).mp4

*   11-6 上传文件(三).mp4

*   11-7 上传文件(四).mp4

*   11-8 同步和异步通讯.mp4

*   11-9 上传文件(五).mp4

*   11-10 下载文件.mp4

第12章 Oracle数据库基础(上)

*   12-1 业务需求.mp4

*   12-2 Oracle数据库系统的安装.mp4

*   12-3 Oracle客户端的安装和配置.mp4

*   12-4 Oracle的表.mp4

*   12-5 Oracle的表-主键和约束.mp4

*   12-6 事务、虚表、序列和伪列.mp4

*   12-7 表的索引.mp4

*   12-8 where、order by子句.mp4

第13章 Oracle数据库基础(下)

*   13-1 Oracle的函数.mp4

*   13-2 外键、别名和子查询.mp4

*   13-3 表空间、用户和权限管理.mp4

*   13-4 视图和数据字典.mp4

*   13-5 数据库链路和同义词.mp4

*   13-6 自定义函数、存储过程和触发器.mp4

*   13-7 其它的知识和相关的概念.mp4

*   13-8 数据库设计PowerDesigner(上).mp4

*   13-9 数据库设计PowerDesigner(下).mp4

第14章 C++开发Oracle数据库

*   14-1 创建表.mp4

*   14-2 向表中插入数据.mp4

*   14-3 修改和删除表中的数据.mp4

*   14-4 从表中查询数据.mp4

*   14-5 存取大型对象.mp4

*   14-6 其它细节.mp4

*   14-7 全国气象站点参数文件入库.mp4

*   14-8 全国气象观测数据文件入库(上).mp4

*   14-9 全国气象观测数据文件入库(下).mp4

第15章 数据抽取模块

*   15-1 业务需求.mp4

*   15-2 搭建程序的框架.mp4

*   15-3 全量抽取数据.mp4

*   15-4 实现增量抽取.mp4

*   15-5 应用的经验.mp4

第16章 数据入库模块

*   16-1 业务需求.mp4

*   16-2 搭建程序的框架.mp4

*   16-3 读取数据字典.mp4

*   16-4 准备SQL语句.mp4

*   16-5 解析xml、执行SQL语句.mp4

*   16-6 完善和优化.mp4

*   16-7 应用的经验.mp4

第17章 数据管理模块

*   17-1 业务需求.mp4

*   17-2 数据清理.mp4

*   17-3 数据迁移.mp4

第18章 数据同步模块

*   18-1 业务需求.mp4

*   18-2 不分批刷新.mp4

*   18-3 分批刷新.mp4

*   18-4 增量同步.mp4

*   18-5 应用的经验.mp4

第19章 IO多路复用

*   19-1 select模型(上).mp4

*   19-2 select模型(下).mp4

*   19-3 poll模型.mp4

*   19-4 epoll模型.mp4

*   19-5 阻塞&非阻塞的IO.mp4

*   19-6 水平触和&边缘触发.mp4

*   19-7 epoll的原理.mp4

第20章 网络代理模块

*   20-1 正向代理的实现.mp4

*   20-2 用epll处理定时器和信号.mp4

*   20-3 正向代理的优化.mp4

*   20-4 反向代理(上).mp4

*   20-5 反向代理(下).mp4

第21章 数据访问接口模块

*   21-1 业务需求.mp4

*   21-2 HTTP协议的本质.mp4

*   21-3 HTTP协议示例.mp4

*   21-4 表的设计.mp4

*   21-5 功能的实现(上).mp4

*   21-6 功能的实现(下).mp4

*   21-7 数据安全策略.mp4

第22章 学习总结

*   22-1 非结构化数据的存储_good.mp4

*   22-2 共享平台的辅助功能.mp4

*   22-3 如何获得项目经验_good.mp4

*   22-4 简历的编写.mp4

*   22-5 如何向面试官介绍项目.mp4

*   22-6 面试官可能的提问.mp4

*   22-7 下一步学习计划_good.mp4

资料

*   01 Electron基础.zip

*   02 项目前期搭建.zip

*   03 登录功能.zip

*   04 登录后.zip

*   05 工作流.zip

*   06 系统.zip

*   07 双击窗口放大问题.zip

*   项目完整版(前端+后端+数据库).zip