获取资料

C++ 百万并发网络通信引擎架构与实现视频课程

C++ 百万并发网络通信引擎架构与实现视频课程

课程目录

第1章第1章 搭建多平台下C++开发环境7小时16分钟22节

1-1课程介绍 32:12

1-218年版_云服务器测试1_Windows_C10K_ 10:54

1-318年版_云测试2_Windows_C100K_十万 13:26

1-418年版_云服务器测试3_Linux_C10K_1万 19:37

1-518年版_云服测试4_Linux_C100K_10万 17:04

1-617年版_网络通信引擎_云服务器_演示测试 33:54

1-7建立 Windows C++开发环境 20:07

1-8建立一个易于管理的Windows C++工程 28:56

1-9VS2015 C++程序常用调试方法39:28

1-10安装配置SVN代码管理工具116:27

1-11安装配置SVN代码管理工具220:17

1-12常用虚拟机软件简介12:52

1-13安装VMware Player 12 并解锁MacOS系统18:20

1-14在虚拟机中安装MacOS 10.12系统34:29

1-15在MacOS 10.12系统中安装Xcode9开发工具13:00

1-16使用Xcode9.1编写一个MacOS C++程序10:02

1-17在虚拟机中安装Linux-ubuntu-16.04桌面系统11:23

1-18解决Ubuntu系统错误提示04:09

1-19在Ubuntu 中编写一个Linux C++程序11:11

1-20在ubuntu16.04中安装vsCode21:12

1-21在vsCode中建立C++项目24:34

1-22在vsCode中调试C++项目22:31

第2章Socket网络通信基础25小时41分钟98节

2-1Socket 基础Api(TCP篇) 介绍08:07

2-2Hello Socket22:08

2-3用Socket API 6步建立TCP服务端45:59

2-4用Socket API 4步建立客户端26:06

2-5建立能持续处理请求的CS网络程序31:46

2-6用SVN来管理我们的教学项目15:50

2-7发送结构化的网络消息数据109:31

2-8发送结构化的网络消息数据207:03

2-9网络报文的数据格式定义及使用110:33

2-10网络报文的数据格式定义及使用216:11

2-11网络报文的数据格式定义及使用314:36

2-12网络报文的数据格式定义及使用408:39

2-13将多次收发报文数据升级为一次收发113:59

2-14将多次收发报文数据升级为一次收发212:02

2-15答疑解惑1:网络消息接收长度问题18:39

2-16服务端升级为select模型处理多客户端105:45

2-17服务端升级为select模型处理多客户端216:17

2-18服务端升级为select模型处理多客户端321:07

2-19服务端升级为select模型处理多客户端411:53

2-20将服务端select模型设置为非阻塞,处理更多业务08:54

2-21客户端升级为select网络模型115:28

2-22客户端升级为select网络模型217:29

2-23客户端升级为select网络模型316:11

2-24为客户端添加输入线程(Thread)24:04

2-25客户端升级1.4跨平台支持Win、Linux、MacOS 110:14

2-26客户端升级1.4跨平台支持Win、Linux、MacOS 212:07

2-27客户端升级1.4跨平台支持Win、Linux、MacOS 312:47

2-28客户端升级1.4跨平台支持Win、Linux、MacOS 408:27

2-29客户端升级1.4跨平台支持Win、Linux、MacOS 513:20

2-30服务端升级1.4跨平台支持Win、Linux、MacOS 109:29

2-31服务端升级1.4跨平台支持Win、Linux、MacOS 208:44

2-32服务端升级1.4跨平台支持Win、Linux、MacOS 310:51

2-33服务端升级1.4跨平台支持Win、Linux、MacOS 410:21

2-34服务端升级1.4跨平台支持Win、Linux、MacOS 508:53

2-35服务端升级1.4跨平台支持Win、Linux、MacOS 608:26

2-36服务端升级1.4跨平台支持Win、Linux、MacOS 708:52

2-37服务端升级1.4跨平台支持Win、Linux、MacOS 810:00

2-38客户端1.5,封装Client类,同时与多个服务端通信112:58

2-39客户端1.5,封装Client类,同时与多个服务端通信214:33

2-40客户端1.5,封装Client类,同时与多个服务端通信316:34

2-41客户端1.5,封装Client类,同时与多个服务端通信415:55

2-42验证客户端1.5同时与多个不同平台下的服务端通信112:11

2-43验证客户端1.5同时与多个不同平台下的服务端通信220:17

2-44验证客户端1.5同时与多个不同平台下的服务端通信321:30

2-45验证客户端1.5同时与多个不同平台下的服务端通信414:55

2-46服务端1.5,封装Server类,创建多个Server服务122:16

2-47服务端1.5,封装Server类,创建多个Server服务216:17

2-48服务端1.5,封装Server类,创建多个Server服务314:14

2-49服务端1.5,封装Server类,创建多个Server服务420:01

2-50在内外网中验证、测试粘包原因113:22

2-51在内外网中验证、测试粘包原因220:44

2-52在内外网中验证、测试粘包原因320:45

2-53客户端1.6,解决客户端粘包115:11

2-54客户端1.6,解决客户端粘包220:15

2-55客户端1.6,解决客户端粘包316:17

2-56服务端1.6,解决服务端粘包120:42

2-57服务端1.6,解决服务端粘包216:47

2-58服务端1.6,解决服务端粘包317:30

2-59服务端1.6,解决服务端粘包417:30

2-60解决粘包测试-Win10专业版-每秒收发1Gb数据06:54

2-61解决粘包测试-Linux-ubuntu-16.04系统21:50

2-62解决粘包测试-外网云服务器-远程数据传输14:51

2-63突破Windows下select64限制114:08

2-64突破Windows下select64限制213:46

2-65添加高精度计时器测量处理能力116:26

2-66添加高精度计时器测量处理能力214:41

2-67单线程select模型10000连接测试14:25

2-68多线程与单线程网络程序架构简介18:16

2-69多线程-基本概念简介28:03

2-70多线程-创建线程,两种启动线程方法的差异19:25

2-71多线程-传递参数给入口函数,创建线程数组12:49

2-72多线程-锁与临界区域10:26

2-73多线程-锁的消耗,通过简单并行计算示例测试17:27

2-74多线程-自解锁07:31

2-75多线程-原子操作19:21

2-76多线程-基本概念总结07:08

2-77定个小目标,1万连接每秒处理200万个数据包114:39

2-78定个小目标,1万连接每秒处理200万个数据包213:14

2-79客户端1.7_1,多线程分组模拟高频并发数据116:06

2-80客户端1.7_2,多线程分组模拟高频并发数据215:58

2-81服务端单线程模式下性能瓶颈测试21:46

2-82经典设计模式-生产者与消费者模式11:09

2-83服务端1.7_1,分离新客户端连接与消息处理业务14:40

2-84服务端1.7_2,为消息处理线程添加新客户端缓冲队列14:09

2-85服务端1.7_3,建立消息处理线程12:30

2-86服务端1.7_4,将新客户端分配给客户数量最少的消息线程10:31

2-87服务端1.7_5,消息处理线程在无客户端时休眠1毫秒13:24

2-88服务端1.7_6,为消息处理线程添加每秒收包计数17:47

2-89服务端1.7_7,事件通知,有客户端退出21:11

2-90服务端1.7_8,测试退出事件14:54

2-91服务端1.7_9,警告:内存不足18:19

2-92客户端1.7_3,提高发送频率,每次发送10个消息包16:37

2-931.7版,小目标达成,1万连接每秒处理200万包验证测试18:32

2-94小目标达成,注解、补充、代码调整119:57

2-95小目标达成,注解、补充、代码调整219:15

2-96小目标达成,注解、补充、代码调整324:41

2-97小目标达成,注解、补充、代码调整424:55

2-98小目标达成,实现自定义Server18:22

第3章一步一步建立高性能服务器33小时57分钟92节

3-1Server1.7_select模型接收数据性能瓶颈与优化126:45

3-2Server1.7_select模型接收数据性能瓶颈与优化226:11

3-3Server1.7_select模型接收数据性能瓶颈与优化323:19

3-4Server1.7_select模型接收数据性能瓶颈与优化418:42

3-5Socket API 极限测试,添加recv和send计数21:53

3-6Socket API 极限测试之recv 1 单线程接收测试20:04

3-7Socket API 极限测试之recv 2 多线程接收测试23:06

3-8Socket API 极限测试之recv 3 阿里云服务器28:42

3-9Socket API 极限测试之send 119:52

3-10Socket API 极限测试之send 219:14

3-11Socket API 极限测试之send 324:57

3-12CellServer数据收发的性能瓶颈119:38

3-13CellServer数据收发的性能瓶颈220:11

3-14CellServer数据收发的性能瓶颈319:56

3-15定时定量发送数据13:17

3-16添加发送缓冲区-定量发送121:50

3-17添加发送缓冲区-定量发送217:37

3-18Server消息接收与发送分离123:04

3-19Server消息接收与发送分离222:07

3-20Server消息接收与发送分离317:49

3-21Server消息接收与发送分离417:25

3-22Server消息接收与发送分离517:25

3-23Server消息接收与发送分离618:21

3-24内存管理-内存池设计120:13

3-25内存管理-内存池设计221:54

3-26内存管理-内存池设计316:16

3-27内存池实现1-重载new运算符22:11

3-28内存池实现217:31

3-29内存池实现319:49

3-30内存池实现4-初始化内存池22:10

3-31内存池实现5-实现内存申请14:43

3-32内存池实现-6-实现内存释放22:23

3-33内存池实现-725:59

3-34内存池实现-821:11

3-35内存池实现-9-验证调试25:19

3-36内存池实现-10-验证调试15:34

3-37内存池实现-1127:26

3-38内存池实现-1226:49

3-39内存池实现-13-支持多线程37:38

3-40内存池实现-14-在Server应用26:02

3-41内存管理-智能指针120:33

3-42内存管理-智能指针219:14

3-43内存管理-智能指针320:26

3-44内存管理-智能指针417:33

3-45内存管理-智能指针517:57

3-46内存管理-智能指针622:14

3-47内存管理-智能指针724:12

3-48内存管理-智能指针824:12

3-49内存管理-智能指针905:39

3-50内存管理-对象池121:08

3-51内存管理-对象池219:19

3-52内存管理-对象池317:54

3-53内存管理-对象池419:54

3-54内存管理-对象池525:04

3-55内存管理-对象池616:10

3-56内存管理-对象池732:09

3-57内存管理-对象池820:49

3-58内存管理-总结16:45

3-59回退到无内存管理07:52

3-60测试-Linux-ubuntu-16.04系统12:23

3-61测试-MacOS 10.12系统12:51

3-62优化代码结构138:23

3-63优化代码结构2-修复发送BUG、减小收发缓冲21:42

3-64C++11的新特性function与lambda31:27

3-65使用function与lambda优化TaskServer10:58

3-66心跳检测126:14

3-67心跳检测227:05

3-68心跳检测327:58

3-69定时发送缓存数据124:36

3-70定时发送缓存数据224:22

3-71并发多线程Server安全退出问题分析124:27

3-72并发多线程Server安全退出问题分析234:06

3-73实现简单的信号等待机制来控制线程退出23:20

3-74封装简单的信号量来控制Sever的关闭35:29

3-75使用condition_variable实现更安全的信号量32:36

3-76优化线程控制131:00

3-77优化线程控制2-源码已改为utf8+bom字符编码34:57

3-78Server2.0_select模型异步发送数据1_utf820:11

3-79Server2.0_select模型异步发送数据221:02

3-80Server2.0_select模型异步发送数据320:30

3-81Server2.0_select模型异步发送数据528:44

3-82Server2.0_select模型异步发送数据420:22

3-83select模型异步发送6_Linux与MacOS测试26:58

3-84Server2.1-分离消息缓冲区125:55

3-85Server2.1-分离消息缓冲区224:20

3-86Server2.1-分离消息缓冲区321:55

3-87Server2.1-分离消息缓冲区415:05

3-88Server2.1-添加运行日志记录123:03

3-89Server2.1-添加运行日志记录221:57

3-90Server2.1-添加运行日志记录329:16

3-91Server2.1-分离网络环境启动与关闭17:44

3-92Server2.1_Linux与MacOS测试12:45

第4章多平台下的客户端网络通信20小时45分钟59节

4-1为前后端建立通用代码库12:56

4-2客户端升级为异步收发数据127:03

4-3客户端升级为异步收发数据225:46

4-4使用字节流传输数据预览11:13

4-5字节流1-建立字节流114:54

4-6字节流2-建立字节流215:10

4-7字节流3-建立字节流310:48

4-8字节流4-写入基础类型16:48

4-9字节流5-写入数组与字符串18:51

4-10字节流6-读取基础类型17:42

4-11字节流7-读取数组和字符串19:14

4-12字节流8-读写测试28:40

4-13字节流9-分类收发消息流26:27

4-14字节流10-使用消息流传输数据34:27

4-15字节流11-有三段补充14:41

4-16在Unity中使用我们的通信引擎16:24

4-17Unity_C++插件应用基础114:05

4-18Unity_C++插件应用基础220:59

4-19Unity_封装插件1_Windows26:31

4-20Unity_封装插件2_Windows14:12

4-21Unity_封装插件3_Windows17:32

4-22Unity_封装插件4_Windows15:19

4-23Unity_封装插件5_连接服务器12:42

4-24Unity_C#自定义收发字节流数据22:40

4-25Unity_C#写入流1-基础类型24:39

4-26Unity_C#写入流2-数组与字符串16:28

4-27Unity_C#写入流3-发送数据-使用测试26:30

4-28Unity_C#解析流1-基础类型24:08

4-29Unity_C#解析流2-数组与字符串17:10

4-30Unity_C#解析流3-解析数据-收发测试14:42

4-31Unity_使用C++插件收发字节流数据16:50

4-32Unity_C++插件导出字节流操作接口31:16

4-33Unity_C++插件写入流数据32:00

4-34Unity_C++插件解析流数据29:25

4-35Unity_MacOSX_使用我们的通信引擎18:52

4-36Unity_IOS_使用我们的通信引擎25:02

4-37Unity_Android_编译C++动态库120:50

4-38Unity_Android_编译C++动态库219:05

4-39Unity_Android_编译C++动态库312:55

4-40Unity_Android_使用我们的通信引擎120:02

4-41Unity_Android_使用我们的通信引擎219:08

4-42Unity_补充-释放流内存17:46

4-43在cocos2d-x-cpp中使用我们的通信引擎23:21

4-44在cocos2d-x-lua中使用我们的通信引擎29:18

4-45cpp&lua交互1-基础知识31:17

4-46cpp&lua交互2-接收和返回字符串11:22

4-47cpp&lua交互3-注册回调函数20:06

4-48cpp&lua交互4-tolua14:50

4-49cpp&lua交互5-NativeClient19:53

4-50cpp&lua交互6-导出Client接口132:27

4-51cpp&lua交互7-导出Client接口223:10

4-52cpp&lua交互8-导出Client接口316:09

4-53cpp&lua交互9-导出Write接口24:58

4-54cpp&lua交互10-导出Write接口228:07

4-55cpp&lua交互11-导出Read接口131:05

4-56cpp&lua交互12-导出Read接口2-收发验证17:30

4-57cpp&lua交互13-封装Client-lua-class27:04

4-58cpp&lua交互14-封装写入流-lua-class22:40

4-59cpp&lua交互15-封装解析流-收发验证30:40

第5章单服模拟10000用户并发操作(每秒处理100万条登录消息)39小时36分钟98节

5-1优化Server可写检测性能121:24

5-2优化Server可写检测性能21:51

5-3增强CELLLog128:28

5-4增强CELLLog228:48

5-5简易命令脚本125:52

5-6简易命令脚本227:55

5-7简易命令脚本3_补充CELLLog10:40

5-8简易命令脚本4_windows_bat15:49

5-9简易命令脚本5_linux_shell08:38

5-10简易命令脚本6_osx_shell11:44

5-11增强命令脚本123:56

5-12增强命令脚本23427:42

5-13增强命令脚本567_shell22:15

5-14c10k_100m-小目标26:56

5-15c10k_Client优化120:16

5-16c10k_Client优化221:20

5-17c10k_Client优化319:12

5-18c10k_Client优化417:14

5-19c10k_Server限制连接数量18:04

5-20c10k_Server添加功能开关13:57

5-21c10k_Server调整select20:18

5-22c10k_Windows 1011:16

5-23c10k_linux接受连接错误118:07

5-24c10k_linux接受连接错误217:11

5-25c10k_linux最大文件数限制20:37

5-26c10k_linux_按位存储的fd_set15:11

5-27c10k_select1024限制原理25:49

5-28c10k_自定义FDSet134:56

5-29c10k_自定义FDSet227:12

5-30c10k_Ubuntu Server 16.04 128:12

5-31c10k_Ubuntu Server 16.04 219:38

5-32c10k Mac OS 10.12 119:47

5-33c10k Mac OS 10.12 219:58

5-34一步步建立高性能服务器-总结17:01

5-35epoll 1 建立项目19:45

5-36epoll 2 epoll_create创建实例18:16

5-37epoll_3_epoll_wait检测网络事件15:20

5-38epoll_4_接受客户端连接24:47

5-39epoll_5_接收客户端消息数据26:20

5-40epoll_6_客户端断开18:03

5-41epoll_7_EPOLLOUT29:32

5-42epoll_8_MOD_DEL28:12

5-43epoll 在线资料、手册12:36

5-44封装epoll基础操作类34:09

5-45从Server中分离Select31:47

5-46在Server中使用Epoll117:17

5-47在Server中使用Epoll220:56

5-48在Server中使用Epoll318:13

5-49在Server中使用Epoll4_调试并解决错误122:23

5-50在Server中使用Epoll5_调试并解决错误220:22

5-51正确处理socket错误137:26

5-52正确处理socket错误237:23

5-53正确处理socket错误343:45

5-54从Client中分离Select24:40

5-55在Client中使用Epoll处理网络事件27:50

5-56select、epoll、IOCP基础流程图解33:22

5-57IOCP_1_创建完成端口26:47

5-58IOCP_2_关联完成端口与ServerSocket21:18

5-59IOCP_3_投递接受连接的任务_AcceptEx_123:42

5-60IOCP_4_投递接受连接的任务_AcceptEx_221:56

5-61IOCP_5_获取已完成的任务_122:40

5-62IOCP_6_获取已完成的任务_222:18

5-63IOCP_7_关联完成端口与ClientSocket.27:09

5-64IOCP_8_投递接收数据任务_WSARecv.34:10

5-65IOCP_9_投递发送数据任务_WSASend35:35

5-66IOCP_10_预加载AcceptEx27:33

5-67封装IOCP基础操作类135:41

5-68封装IOCP基础操作类227:43

5-69在Server中使用IOCP_132:08

5-70在Server中使用IOCP_224:30

5-71在Server中使用IOCP_322:38

5-72在Server中使用IOCP_421:54

5-73在Server中使用IOCP_523:29

5-74在Server中使用IOCP_626:00

5-75在Server中使用IOCP_725:37

5-76在Server中使用IOCP_820:24

5-77在Server中使用IOCP_916:52

5-78在Server中使用IOCP_1025:15

5-79在Server中使用IOCP_11_调整心跳检测35:45

5-80在Client中使用IOCP_137:26

5-81在Client中使用IOCP_225:21

5-82C100K_1_新的小目标17:05

5-83C100K_2_windows_select37:47

5-84C100K_3_windows_IOCP39:22

5-85C100K_4_windows38:57

5-86C100K_5_windows26:25

5-87C100K_6_linux_epoll133:27

5-88C100K_7_linux_epoll232:28

5-89C100K_8_模拟客户端的瓶颈128:58

5-90C100K_9_模拟客户端的瓶颈223:57

5-91C100K_10_本地连接云服务器_CentOS_7.445:06

5-92C100K_11_创建5台云服务器_用于性能测试19:47

5-93C100K_12_云服Windows单双网卡性能测试29:22

5-94云服务器演示1_Windows_Server_C10K10:54

5-95云服务器演示2_Windows_Server_C100K13:26

5-96云服务器演示3_Ubuntu_Server_C10K19:37

5-97云服务器演示4_Ubuntu_Server_C100K17:04

5-98云服务器演示5_上传代码到云服_编译_运行_C100K08:55

评论0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址