课程介绍和特色
这是一门讲述 Linux 下 C++ 网络(服务器)开发的实战课程,针对于 C/C++ 语言已经掌握的很熟并希望进一步深造以将来用 C++ 在 Linux 下从事网络服务器、通信领域开发和架构工作的同学。
本课程原计划带着大家逐行写代码,但因为代码实在过于复杂和精细,带着写代码可能会造成每节课至少要持续 4-5 小时的超长时间,所以老师会在课前先写好代码,主要的时间花费在逐行讲解这些代码上,这一点望同学们周知!
这门课程学习难度颇高但也有着比较优渥的薪水,这门课程,会先从 Nginx 源码的分析和讲解开始,逐步开始书写属于自己的高性能服务器框架代码,完善个人代码库,这些,将会是您日后能取得高薪的重要筹码。
这门课程要求您具备下面的技能:
(1) 对 C/C++ 语言掌握的非常熟练,语言本身已经不是继续学习的障碍,并不要求您一定熟悉网络或者 Linux;
(2) 对网络通信领域有兴趣、勇于挑战这个高难度的开发领域并期望用大量的付出换取高薪;
在这门课程中,实现了一个完整的项目,其中包括通信框架和业务逻辑框架,浓缩总结起来包括如下几点:
(1) 项目本身是一个极完整的多线程高并发的服务器程序;
(2) 按照包头包体格式正确的接收客户端发送过来的数据包, 完美解决收包时的数据粘包问题;
(3) 根据收到的包的不同来执行不同的业务处理逻辑;
(4) 把业务处理产生的结果数据包正确返回给客户端;
本项目用到的主要开发技术和特色包括:
(1)epoll 高并发通讯技术,用到的触发模式是 epoll 中的水平触发模式【LT】;
(2) 自己写了一套线程池来处理业务逻辑,调用适当的业务逻辑处理函数处理业务并返回给客户端处理结果;
(3) 线程之间的同步技术包括互斥量,信号量等等;
(4) 连接池中连接的延迟回收技术,这是整个项目中的精华技术,极大程度上消除诸多导致服务器程序工作不稳定的因素;
(5) 专门处理数据发送的一整套数据发送逻辑以及对应的发送线程;
(6) 其他次要技术,包括信号、日志打印、fork() 子进程、守护进程等等;
为照顾初学 Linux C++ 编程的学友,本章前 4 章详细讲解项目要求的环境搭建和一些基础知识,对于这些知识掌握的比较好的同学,可以直接从第 5 章学起,如果觉得某些知识点学起来吃力,可以再回头看前 4 章对应课节内容。
老师荐言
很多同学期盼已久网络通信课程终于与大家见面。这门课程的目标是在 1-2 年的时间内,在学完本课程并将老师所讲的内容全部消化理解后,你会有足够的自信和能力去挑战 30k 以上的月薪,而对于老师,出这门课程压力巨大—课程本身难度很高是其一,要把这种难度的内容讲明白让人听得懂则也是对老师的挑战,相信大家生活中遇到过不少自己明白却把别人讲糊涂的老师。
纵观以往,很少有老师敢说你只有 C++ 的开发知识就能够让你学会这种难度颇高的网络通信、架构知识,所以,从今天起,我愿做这个摆渡人,用我 20 多年的知识积累,通过这门课程,为大家铺设一条极速的成才之路。
不少网络类课程因为同学们的基础千差万别,相当一部分同学越听到后期越难以听懂,甚至不得不放弃学习,这种悲剧绝不可以在这门课程中重演,所以老师会用尽浑身解数为大家打好基础却又尽量不让基础很好的同学觉得课程拖沓,所以在这门课程中我会采用独创的“拔苗助长”和“用啥讲啥”相互结合的讲课策略。不夸张的描述这门课程的价值:“选择这门课程,你可以节省少则 3-5 年甚至 10 年的在 C++ 服务器开发道路上成长和摸索的时间”。
最后,老师真诚的感谢那些购买本教程支持老师的同学们,作为一个老程序员,一名传道授业老师,我以:良心与责任同行自勉,愿大家学业进步,前途光明!
学习方法
不少长期听老师课的同学对老师产生了依赖性,认为学习 C++ 知识是如此的简单!
老师确实可以把一些有难度的知识以一种比较简单的表达方式传授给你,但这绝不意味着知识本身很简单,尤其是这门网络通信课程更是如此——具有相当高的难度,为此,老师要求每位参与学习的同学尤其是以往从未接触过网络和 Linux 的同学务必做到以下几点:
(1)认真听课,认真做笔记,笔记要图文并茂,该截图截图,该文字说明文字说明。
(2)老师所讲解的每个地方都要亲自实践验证,并且一定要保证成功,中途遇到任何困难,及时找老师和其他同学沟通,切记切记,这是往你大脑深入镌刻真正知识的步骤,绝不可忽略。
(3)对于那种只出眼睛看、出耳朵听,不动手去实践的同学,老师希望你们改变学习方法,动起手来,对自己负责,不断的超越自我,否则,你的收获会非常有限。
在整个课程的教授过程中,老师会给大家提供非常完善的代码,写极其详实的代码注释,并始终会带领大家认真解读每一行代码的含义,这些是日后真正在大家的工作中拿过来就能用的商业品质的代码!
选择这门课程,你就等于找到了一个 20 多年经验的人帮助你来写代码,详细的告诉你每行代码的含义,这在以往,是难以想象的事情,参与本课程的学习,大家都能够和老师一起,书写一套极高质量的服务器代码并轻松对其进行驾驭,在前进的道路上,你们一定会比别人快得多!快得多!快得多!重要的事情说三遍。
老师会详细的讲解每一行语句,提供极其细致的注释,从点点滴滴培养你分析能力、把控大型项目的能力、写出高质量代码的能力,老师的每堂课,都是以细致入微的方式来讲诸多高端的知识和代码,我深信,学完这门课程,月薪提升 10K 是非常轻松的事,我还相信,学完这门课程,月薪能够跨过 30K 的同学,一定大有人在,同学们,请加油了!
课件资料
本视频对应的学习书籍:《C++ 新经典:Linux C++ 通信架构实战》,对应的课件下载地址:
链接:https://pan.baidu.com/s/1efCJ4PFW8D4haXFr3SEWmA
提取码:obvn
联系方式
希望交流的同学,可以加王老师的微信:wangjw6517119,由王老师将你拉入微信技术讨论群,欢迎大家在这里讨论技术问题,交流学习心得和学习方法。










