-
更加侧重 C/C++ 工程实践; -
向 C/C++ 开发其他基本功,例如操作系统原理,方面倾斜;
-
实践项目更加丰富,学员可以投票选一些新的项目进行剖析和实践; -
课程内容和结构调整,课程结构和安排更加合理。
适合人群
-
有一定 C 、C++ 或 C# 基础的同学; -
想深入系统地学习下网络编程的同学; -
想独立设计或者想掌握如何研究大型开源项目的网络框架的同学; -
网络编程知识存在夹生饭,但是又不知道如何补缺补差的同学; -
网络编程爱好者。
不适合人群
-
提问问题态度恶劣,老气横秋的人;
-
叶公好龙、三分钟热度的人;
-
对自己不负责,懒于提高的人;
-
把学习当做别人的事情,缺少主观能动性的人。
学完后,你将获得的技能
-
规范的代码编写能力和源代码管理能力;
-
熟悉 C++11/14/17 常用语法;
-
系统性地掌握 C/C++ 网络编程知识体系;
-
熟悉网络编程模型,可以写出商业的网络通信模块;
-
拥有一定的网络故障排查能力;
-
掌握 Visual Studio 开发工具的高级使用技巧和调试方法;
-
掌握 Linux gdb 调试;
-
熟悉前后端如何联调;
-
熟悉客户端和服务器网络框架如何组织,模块如何规划,细节如何实现,每一行代码如何考究地写;
-
拥有容易地看懂市面上常见的网络库的能力;
-
C++ 面试中,网络编程问题轻松回答。
训练营大纲
热身篇
-
开场白——摸底学员参加此训练营的诉求和期望目标
-
开发工具介绍
-
如何学习网络编程
基础篇 1 —— C++工程实践
在这个系列中,我将结合一些流行的开源代码,详细地介绍在实际工作中如何开发 Windows 和 Linux 上 C/C++ 程序。
同时会介绍多线程编程的知识点和调试技巧。
涉及到的项目 电驴、uWebSockets、libuv、TeamTalk 等。
基础篇 2 —— 网络编程基础
-
阻塞模式与非阻塞模式,同步与异步模式
-
精讲常用 socket 函数(socket、connect、bind、accept、send、recv 等)
-
瑞士军刀 nc 命令
-
常用的 Socket 选项
-
域名解析
-
字节序
-
实战项目 1—— Flamingo 客户端网络框架解析
网络编程进阶 1 —— IO 复用模型
-
IO 复用函数之 select 函数 -
实战项目 2 —— TeamTalk 客户端网络框架解析 -
IO 复用函数之 poll 函数 -
IO 复用函数之 epoll 函数 -
实战项目 3—— uWebSocket 网络框架解析 -
实战项目 4—— 一个简单的 httpserver 的实现 -
Windows 网络模型 WSAPoll 精讲、WSAEventSelect 模型精讲、WSAAsyncSelect 模型精讲 -
实战项目 5 —— Sogo Workflow -
实战项目 6 —— Google GRPC -
实战项目 7 —— Baidu RPC(BRPC) -
Windows 网络模型 —— 完成端口模型(IOCP)精讲 -
实战项目 8 —— gh0st 远程控制软件服务端网络框架解析
网络编程进阶 2 —— 协议设计与进阶
-
应用层协议如何设计 -
telnet 命令与 telnet 协议 -
SSH 协议详解 -
curl 命令与 tcpdump 命令详解 -
HTTP 协议详解 -
实战项目 9 —— Nginx 源码之解析 HTTP 协议精讲 -
实战项目 10 ——如何在 Visual Studio 中调试 Windows 版本的 Nginx 源码 -
实战项目 11 —— 12306 刷票软件的开发 -
实战项目 12 —— 通过 Redis 源码来分析 Redis 协议格式 -
实战项目 13 —— 邮箱协议与实现一个邮箱报警功能 -
实战项目 14 —— 文件传输 FTP 协议与 Filezilla 中的实现 -
实战项目 15 —— 如何搭建 MySQL-Server 8.0 调试环境 -
TLV 格式设计 -
Google Protobuf 原理分析
网络编程高级篇 —— 网络框架组件设计
-
阻塞模式的使用场景
-
异步 connect 函数
-
收发数据的正确姿势
-
收发缓冲区的设计
-
一个线程处理一个连接的结构设计
-
one thread one loop 结构
-
定时器设计
-
实战项目 16 —— libuv 源码精讲
-
客户端网络框架如何组织
-
服务端网络框架如何组织
-
实战项目17 —— pcshare 远程控制软件网络框架解析
-
实战项目 18 —— Flamingo Server 新版网络框架解析
-
实战项目 19 —— TeamTalk 服务端网络框架解析
-
实战项目 20 —— Sogou Workflow 最新源码网络框架解析
网络编程补缺补差篇
-
如何保证关闭连接前,数据可以发送出去 -
心跳包机制如何设计 -
断线重连机制如何设计 -
超时机制如何设计 -
拔网线问题 -
网络故障排查与定位 -
监控端口 -
三次握手与四次挥手常见问题解析 -
实战项目 21 —— P2P 网络项目实战 -
实战项目 22 —— Google GRPC
-
聊一聊面试中常考的网络编程问题
-
课程总结
涉及到的开发工具
-
Visual Studio 2022 -
Visual Studio Code -
gcc 9.1、gdb 8.3 等
课程时间安排
-
线上腾讯会议直播课,手把手辅导;
-
尽量每周安排 2 ~ 3 次课,时间会提前与学员商定,课后提供录像、课件和源码;
-
课程周期约 3 ~ 4 月;
-
课程有专门的打卡交流群和知识星球;
-
自开营日开始,后续一年内提供技术解答和全部训练营录像。
课程费用
课程定价 2500,报名人数每递增 5 位,单价增加 200。
报名了第一期训练营的同学,本次可以 600 元报名。
知识星球球友八折优惠。
有兴趣报名的同学,可加微信 cppxiaofang 咨询,非诚勿扰。

