15

C++ 百万并发网络通信引擎架构与实现 (Socket、全栈、跨平台) Version 1.0课件资料

上传者:zhanglitong

发布时间:2017-11-10 21:56:17

大小:3 M

简介:本课程由刘远东、张立铜两位工程师将两人在企业多年积累的开发经验结合而成。从基础的网络知识开始由浅入深地讲解如何使用C++实现一套支持百万级别并发的网络通信引擎。包含:高频并发、多线程、多进程、线程池、内存池、软件硬件瓶颈、如何测试优化网络处理能力等技术知识。可以应用在Windows、Linux、Android、IOS系统上。对从事高性能网络处理的前后端开发人员有极大帮助。咨询群:648738912---------------------------------------------------------------------------------------------------------------------------------------------------------------------章节编号技术知识点第1章     搭建多平台下C++开发环境 1课程介绍2C++百万并发网络通信引擎演示 3开发工具介绍4建立 Windows C++开发环境5编写一个Windows C++程序6用VS2015   设计、编写、调试、生成一个C++程序7Windows下C++动态库.DLL的建立及使用8DLL库的动态加载,以及经常遇到的问题9Windows下C++动态库.Lib的生成以及使用10建立 Android C++开发环境11编写一个Android C++程序12Android下C++动态库.so的建立及使用13Android下C++静态库.a的建立及使用14主流虚拟机工具简介15安装虚拟机软件VMware   Workstation 12 Player16IOS 开发环境搭建第1步:在虚拟机中安装MacOS 10.12系统17IOS 开发环境搭建第2步:安装Xcode9开发工具18IOS 开发环境搭建第3步:IOS开发者账号简介19使用Xcode9创建第一个IOS程序20在IOS程序中编写C++代码21IOS下C++静态库的建立及使用22IOS下C++动态库的建立及使用23Linux C++开发环境搭建24在Linux中开发第一个C++程序25Linux下C++   动态共享库.so的使用26Linux下C++   静态共享库.a的使用27章节总结第2章     Socket网络通信基础 1Hello Socket2(socket)Api 介绍3五种通讯模型介绍4p2p通信(主线程中通信)5C /   S模式,通信(多客户端,引出多线程)6多线程知识介绍7多线程模型(生产者消费者模型)8多线程中通信的知识(事件)9多线程中通信(信号量)10多线程中通信(锁)11多线程通信(临界区)12多线程通信(原子操作)13多线程模型中通信框架建立14多线程模型中通信框架建立(2)15C++设计模式的介绍,模板方法16C++设计模式的介绍,工厂模型17采用std::list实现队列18性能测试,找出性能瓶颈,计算每一块花费的时间19socket数据包解析(字符串)20socket数据解析(二进制)21消息头的设计和使用22什么粘包,是什么原因引起的粘包23如何解决粘包问题(方法1)24如何解决粘包问题(方法2)25阻塞socket26非阻塞socket27章节总结第3章     多平台下的客户端网络通信 1客户端socket的封装2建立/模拟一个简易的客户端收发环境3数据处理线程的设计和使用4网络消息结构的设计5接收网络数据的队列设计6发送网络数据的队列设计7数据解包和组包8xml数据包/json数据包/流数据介绍9第三方解析库的引入10文本编码格式的统一个转换11Goolg   protobuffer的介绍和使用12经验分享,对于数据解析和报文设计需要注意的一些细节13解决粘包问题14断线重连15身份验证16心跳检测的处理17代码优化,共享库的封装,以及在商业引擎中的使用18提供原生的接口给ndk开发者19提供jni/jna的接口给java开发者20cocos2dx中使用网络库21C#接口的封装与调用(Unity)22Unreal中使用23章节总结第4章     一步一步建立高性能服务器 1性能分析-new-delete消耗2链表的地址多次访问-传统链表实现3高性能链表研发4测试网络内耗-找出新的瓶颈5优化网络数据读取6优化网络数据读取-分包处理7实现每秒100万个数据包的解析8对锁的测试,锁的性能瓶颈9如何减少加锁,解锁的时间10新型队列的使用,双缓冲队列11采用定时和定量的方式改进性能12采用定时和定量的方式改进性能(2)13C++代理的引入,为何使用代理模式14配合双缓冲,引进批量解析,降低锁的使用15动态分配内存的优化-内存池子16整理完善框架和功能;17多连接支持 - 引出连接的性能瓶颈18连接池能解决什么问题,什么情况下才能体现出来它的价值19大型服务器如何保证长时间运行(内存碎片的思考)20引入内存池21实现内存池(1)22实现内存池(2)23如何接管系统的内存管理函数(malloc,   free, new, delete)24采用重载方式替换 - 应用场合 - 问题25采用hook技术完全接管系统内存申请和释放过程26引入工作线程池,工作池的作用27线程池的设计、实现;28结合通信框架引入线程池29如何避免队列中积累过多的工作项目30完善现有框架引擎代码31定时器的引入,为何引入定时器32心跳的引入,如何检测连接还活着33windows下引入iocp,iocp解决了哪些问题34采用iocp模型实现通信框架(服务器模型)35采用iocp模型实现通信框架(服务器模型)36采用iocp模型实现通信框架(客户端模型)37框架优化38框架优化39性能压力测试40性能压力测试41如何建立支持百万级别的通信框架42如何建立支持千万级别的通信框架43如何建立可伸缩的无限制的通信框架44跨平台的支持-linux(pthread)45跨平台的支持-linux(线程间通信),锁,信号量46采用epoll实现通信框架模型(1)47采用epoll实现通信框架模型(2)48完善封装-校正49章节总结第5章     案例分析     单服模拟10000用户并发操作)直连模式1登录操作2处理非法连接,恶意请求3购买操作4查询操作5修改操作6删除操作7聊天8模拟操作19模拟操作210超负荷情况下处理策略11章节总结第6章     案例分析     集群方式1(单机版本)看门狗程序设计2看门狗的配置管理(xml)版本3看门狗的配置管理(lua)版本4集群管理5章节总结第7章     案例分析     多线程模型1线程池的设计2任务设计和实现3线程间通信处理(同步)4登录操作5购买操作6查询操作7修改操作8删除操作9聊天10模拟操作111模拟操作212超负荷情况下处理策略13章节总结第8章     案例分析     超大规模通信服务模型1内容持续更新中。。。

C++ 高并发 Socket
下 载 25人已下载
分享