C++ 百万并发网络通信引擎架构与实现 (Socket、全栈、跨平台) Version 1.0
C++ 百万并发网络通信引擎架构与实现 (Socket、全栈、跨平台) Version 1.0
搭建多平台下C++开发环境
- 课程介绍
- 18年_云服务器测试1_Windows_C10K_1万用户
- 18年版_云测试2_Windows_C100K_十万活跃用户
- 18年版_云服务器测试3_Linux_C10K_1万活跃用户
- 18年版_云服务器测试4_Linux_C100K_10万活跃用户
- 17年版_网络通信引擎云服务器演示测试
- 建立 Windows C++开发环境
- 建立一个易于管理的Windows C++工程
- VS2015 C++程序常用调试方法
- 常用虚拟机软件简介
- 安装虚拟机软件VMware Workstation 12 Player
- 在虚拟机中安装MacOS 10.12系统
- 在MacOS 10.12系统中安装Xcode9开发工具
- 使用Xcode9.1编写一个MacOS C++程序
- 在虚拟机中安装Linux-ubuntu-16.04桌面系统
- 在Ubuntu 中编写一个Linux C++程序
- 安装配置SVN代码管理工具1
- 安装配置SVN代码管理工具2
- 解决Ubuntu系统错误提示
- 在ubuntu16.04中安装vsCode
- 在vsCode中建立C++项目
- 在vsCode中调试C++项目
Socket网络通信基础
- Socket 基础Api(TCP篇) 介绍
- Hello Socket
- 用Socket API 6步建立TCP服务端
- 用Socket API 4步建立客户端
- 建立能持续处理请求的CS网络程序
- 用SVN来管理我们的教学项目
- 发送结构化的网络消息数据1
- 发送结构化的网络消息数据2
- 网络报文的数据格式定义及使用1
- 网络报文的数据格式定义及使用2
- 网络报文的数据格式定义及使用3
- 网络报文的数据格式定义及使用4
- 将多次收发报文数据升级为一次收发1
- 将多次收发报文数据升级为一次收发2
- 答疑解惑:网络消息接收长度问题
- 服务端升级为select模型处理多客户端1
- 服务端升级为select模型处理多客户端2
- 服务端升级为select模型处理多客户端3
- 服务端升级为select模型处理多客户端4
- 将服务端select模型设置为非阻塞,处理更多业务
- 客户端升级为select网络模型1
- 客户端升级为select网络模型2
- 客户端升级为select网络模型3
- 为客户端添加输入线程(Thread)
- 客户端升级1.4跨平台移植:Winows、Linux、MacOS系统1
- 客户端升级1.4跨平台移植:Winows、Linux、MacOS系统2
- 客户端升级1.4跨平台移植:Winows、Linux、MacOS系统3
- 客户端升级1.4跨平台移植:Winows、Linux、MacOS系统4
- 客户端升级1.4跨平台移植:Winows、Linux、MacOS系统5
- 服务端升级1.4跨平台移植:Winows、Linux、MacOS系统1
- 服务端升级1.4跨平台移植:Winows、Linux、MacOS系统2
- 服务端升级1.4跨平台移植:Winows、Linux、MacOS系统3
- 服务端升级1.4跨平台移植:Winows、Linux、MacOS系统4
- 服务端升级1.4跨平台移植:Winows、Linux、MacOS系统5
- 服务端升级1.4跨平台移植:Winows、Linux、MacOS系统6
- 服务端升级1.4跨平台移植:Winows、Linux、MacOS系统7
- 服务端升级1.4跨平台移植:Winows、Linux、MacOS系统8
- 客户端1.5,封装Client类,同时与多个服务端通信1
- 客户端1.5,封装Client类,同时与多个服务端通信2
- 客户端1.5,封装Client类,同时与多个服务端通信3
- 客户端1.5,封装Client类,同时与多个服务端通信4
- 验证客户端1.5同时与多个不同平台下的服务端通信1
- 验证客户端1.5同时与多个不同平台下的服务端通信2
- 验证客户端1.5同时与多个不同平台下的服务端通信3
- 验证客户端1.5同时与多个不同平台下的服务端通信4
- 服务端1.5,封装Server类,创建多个Server服务1
- 服务端1.5,封装Server类,创建多个Server服务2
- 服务端1.5,封装Server类,创建多个Server服务3
- 服务端1.5,封装Server类,创建多个Server服务4
- 在内外网中验证、测试粘包原因1
- 在内外网中验证、测试粘包原因2
- 在内外网中验证、测试粘包原因3
- 客户端1.6,解决客户端粘包1
- 客户端1.6,解决客户端粘包2
- 客户端1.6,解决客户端粘包3
- 服务端1.6,解决服务端粘包1
- 服务端1.6,解决服务端粘包2
- 服务端1.6,解决服务端粘包3
- 服务端1.6,解决服务端粘包4
- 解决粘包测试-Win10专业版-每秒1Gb数据
- 解决粘包测试-Linux-ubuntu-16.04系统
- 解决粘包测试-外网云服务器-远程数据传输
- 突破Windows下select64限制1
- 突破Windows下select64限制2
- 添加高精度计时器测量处理能力1
- 添加高精度计时器测量处理能力2
- 单线程select模型10000连接测试
- 多线程与单线程网络程序架构简介
- 多线程-基本概念简介
- 多线程-创建线程,两种启动线程方法的差异
- 多线程-传递参数给入口函数,创建线程数组
- 多线程-锁与临界区域
- 多线程-锁的消耗,通过简单并行计算示例测试
- 多线程-自解锁
- 多线程-原子操作
- 多线程-基本概念总结
- 定个小目标,1万连接每秒处理200万个数据包1
- 定个小目标,1万连接每秒处理200万个数据包2
- 客户端1.7_1,多线程分组模拟高频并发数据1
- 客户端1.7_2,多线程分组模拟高频并发数据2
- 服务端单线程模式下性能瓶颈测试
- 经典设计模式-生产者与消费者模式
- 服务端1.7_1,分离新客户端连接与消息处理业务
- 服务端1.7_2,为消息处理线程添加新客户端缓冲队列
- 服务端1.7_3,建立消息处理线程
- 服务端1.7_4,将新客户端分配给客户数量最少的消息线程
- 服务端1.7_5,消息处理线程在无客户端时休眠1毫秒
- 服务端1.7_6,为消息处理线程添加每秒收包计数
- 服务端1.7_7,事件通知,有客户端退出
- 服务端1.7_8,测试退出事件
- 服务端1.7_9,警告:内存不足
- 客户端1.7_3,提高发送频率,每次发送10个消息包
- 1.7版,小目标达成,1万连接每秒处理200万包验证测试
- 小目标达成,注解、补充、代码调整1
- 小目标达成,注解、补充、代码调整2
- 小目标达成,注解、补充、代码调整3
- 小目标达成,注解、补充、代码调整4
- 小目标达成,实现自定义Server
多平台下的客户端网络通信
- 为前后端建立通用代码库-先看第四章
- 客户端升级为异步收发数据1-先看第四章
- 客户端升级为异步收发数据2
- 使用字节流传输数据预览
- 字节流1-建立字节流1
- 字节流2-建立字节流2
- 字节流3-建立字节流3
- 字节流4-写入基础类型
- 字节流5-写入数组与字符串
- 字节流6-读取基础类型
- 字节流7-读取数组和字符串
- 字节流8-读写测试
- 字节流9-分类收发消息流
- 字节流10-使用消息流传输数据
- 字节流11-有三段补充
- 在Unity中使用我们的通信引擎
- Unity_C++插件应用基础1
- Unity_C++插件应用基础2
- Unity_封装插件1_Windows
- Unity_封装插件2_Windows
- Unity_封装插件3_Windows
- Unity_封装插件4_Windows
- Unity_封装插件5_连接服务器
- Unity_C#自定义收发字节流数据
- Unity_C#写入流1-基础类型
- Unity_C#写入流2-数组与字符串
- Unity_C#写入流3-发送数据-使用测试
- Unity_C#解析流1-基础类型
- Unity_C#解析流2-数组与字符串
- Unity_C#解析流3-解析数据-收发验证
- Unity_使用C++插件收发字节流数据
- Unity_C++插件导出字节流操作接口
- Unity_C++插件写入流数据
- Unity_C++插件解析流数据
- Unity_MacOSX_使用我们的通信引擎
- Unity_IOS_使用我们的通信引擎
- Unity_Android_编译C++动态库1
- Unity_Android_编译C++动态库2
- Unity_Android_编译C++动态库3
- Unity_Android_使用我们的通信引擎 1
- Unity_Android_使用我们的通信引擎 2
- Unity_补充-释放流内存
- 在cocos2d-x-cpp中使用我们的通信引擎
- 在cocos2d-x-lua中使用我们的通信引擎
- cpp&lua;交互1-基础知识
- cpp&lua;交互2-接收和返回字符串
- cpp&lua;交互3-注册回调函数
- cpp&lua;交互4-tolua
- cpp&lua;交互5-NativeClient
- cpp&lua;交互6-导出Client接口1
- cpp&lua;交互7-导出Client接口2
- cpp&lua;交互8-导出Client接口3
- cpp&lua;交互9-导出Write接口
- cpp&lua;交互10-导出Write接口2
- cpp&lua;交互11-导出Read接口1
- cpp&lua;交互12-导出Read接口2-收发验证
- cpp&lua;交互13-封装Client-lua-class
- cpp&lua;交互14-封装写入流-lua-class
- cpp&lua;交互15-封装解析流-收发验证
一步一步建立高性能服务器
- Server1.7_select模型接收数据性能瓶颈与优化1
- Server1.7_select模型接收数据性能瓶颈与优化2
- Server1.7_select模型接收数据性能瓶颈与优化3
- Server1.7_select模型接收数据性能瓶颈与优化4
- Socket API 极限测试,添加recv和send调用每秒调用计数
- Socket API 极限测试之recv 1 单线程每秒100+万次接收
- Socket API 极限测试之recv 2 多线程每秒400+万次接收
- Socket API 极限测试之recv 3 阿里云服务器单线程每秒100万+次接收
- Socket API极限测试之send函数1
- Socket API极限测试之send函数2
- Socket API极限测试之send函数3
- CellServer数据收发的性能瓶颈1
- CellServer数据收发的性能瓶颈2
- CellServer数据收发的性能瓶颈3
- 定时定量发送数据
- 添加发送缓冲区-定量发送1
- 添加发送缓冲区-定量发送2
- Server消息接收与发送分离1
- Server消息接收与发送分离2
- Server消息接收与发送分离3
- Server消息接收与发送分离4
- Server消息接收与发送分离5
- Server消息接收与发送分离6
- 内存管理-内存池设计1
- 内存管理-内存池设计2
- 内存管理-内存池设计3
- 内存池实现1-重载new运算符
- 内存池实现2
- 内存池实现3
- 内存池实现4-初始化内存池
- 内存池实现5-实现内存申请
- 内存池实现-6-实现内存释放
- 内存池实现-7
- 内存池实现-8
- 内存池实现-9-验证调试
- 内存池实现-10-验证调试
- 内存池实现-11
- 内存池实现-12
- 内存池实现-13-支持多线程
- 内存池实现-14-在Server应用
- 内存管理-智能指针1
- 内存管理-智能指针2
- 内存管理-智能指针3
- 内存管理-智能指针4
- 内存管理-智能指针5
- 内存管理-智能指针6
- 内存管理-智能指针7
- 内存管理-智能指针8
- 内存管理-智能指针9
- 内存管理-对象池1
- 内存管理-对象池2
- 内存管理-对象池3
- 内存管理-对象池4
- 内存管理-对象池5
- 内存管理-对象池6
- 内存管理-对象池7
- 内存管理-对象池8
- 内存管理-总结
- 回退到无内存管理
- 测试-Linux-ubuntu-16.04系统
- 测试-MacOS 10.12系统
- 优化代码结构1
- 优化代码结构2-修复发送BUG、减小收发缓冲
- C++11的新特性function与lambda
- 使用function与lambda优化TaskServer
- 心跳检测1
- 心跳检测2
- 心跳检测3
- 定时发送缓存数据1
- 定时发送缓存数据2
- 并发多线程Server安全退出问题分析1
- 并发多线程Server安全退出问题分析2
- 实现简单的信号等待机制来控制线程退出
- 封装简单的信号量来控制Sever的关闭
- 使用condition_variable实现更安全的信号量
- 优化线程控制1
- 优化线程控制2-源码已改为utf8+bom字符编码
- Server2.0_select模型异步发送数据1_源码修改为UTF8编码
- Server2.0_select模型异步发送数据2
- Server2.0_select模型异步发送数据3
- Server2.0_select模型异步发送数据4
- Server2.0_select模型异步发送数据5
- Server2.0_select模型异步发送数据6_Linux与MacOS测试
- Server2.1-分离消息缓冲区1
- Server2.1-分离消息缓冲区2
- Server2.1-分离消息缓冲区3
- Server2.1-分离消息缓冲区4
- Server2.1-添加运行日志记录1
- Server2.1-添加运行日志记录2
- Server2.1-添加运行日志记录3
- Server2.1-分离网络环境启动与关闭
- Server2.1_Linux与MacOS测试
案例分析(单服模拟10000用户并发操作)直连模式
- 优化Server可写检测性能1
- 优化Server可写检测性能2
- 增强CELLLog1
- 增强CELLLog2
- 简易命令脚本1
- 简易命令脚本2
- 简易命令脚本3_补充CELLLog
- 简易命令脚本4_windows_bat
- 简易命令脚本5_linux_shell
- 简易命令脚本6_osx_shell
- 增强命令脚本1
- 增强命令脚本234
- 增强命令脚本567_shell
- c10k_100m-小目标
- c10k_Client优化1
- c10k_Client优化2
- c10k_Client优化3
- c10k_Client优化4
- c10k_Server限制连接数量
- c10k_Server添加功能开关
- c10k_Server调整select
- c10k_Windows10
- c10k_linux接受连接错误1
- c10k_linux接受连接错误2
- c10k_linux最大文件数限制
- c10k_linux_按位存储的fd_set
- c10k_select1024限制原理
- c10k_自定义FDSet1
- c10k_自定义FDSet2
- c10k Ubuntu Server 16.04 1
- c10k Ubuntu Server 16.04 2
- c10k Mac OS 10.12 1
- c10k Mac OS 10.12 2
- 一步步建立高性能服务器-总结
- epoll 1 建立项目
- epoll 2 epoll_create创建实例
- epoll_3_epoll_wait检测网络事件
- epoll_4_接受客户端连接
- epoll_5_接收客户端消息数据
- epoll_6_客户端断开
- epoll_7_EPOLLOUT
- epoll_8_MOD_DEL
- epoll 在线资料、手册
- 封装epoll基础操作类
- 从Server中分离Select
- 在Server中使用Epoll处理网络事件1
- 在Server中使用Epoll2
- 在Server中使用Epoll3
- 在Server中使用Epoll4_调试并解决错误1
- 在Server中使用Epoll5_调试并解决错误2
- 正确处理socket错误1
- 正确处理socket错误2
- 正确处理socket错误3
- 从Client中分离Select
- 在Client中使用Epoll处理网络事件
- select、epoll、IOCP基础流程图
- IOCP_1_创建完成端口
- IOCP_2_关联完成端口与ServerSocket
- IOCP_3_投递接受连接的任务_AcceptEx_1
- IOCP_4_投递接受连接的任务_AcceptEx_2
- IOCP_5_获取已完成的任务_1
- IOCP_6_获取已完成的任务_2
- IOCP_7_关联完成端口与ClientSocket
- IOCP_8_投递接收数据任务_WSARecv
- IOCP_9_投递发送数据任务_WSASend
- IOCP_10_预加载AcceptEx
- 封装IOCP基础操作类1
- 封装IOCP基础操作类2
- 在Server中使用IOCP_1
- 在Server中使用IOCP_2
- 在Server中使用IOCP_3
- 在Server中使用IOCP_4
- 在Server中使用IOCP_5
- 在Server中使用IOCP_6
- 在Server中使用IOCP_7
- 在Server中使用IOCP_8
- 在Server中使用IOCP_9
- 在Server中使用IOCP_10
- 在Server中使用IOCP_11_调整心跳检测
- 在Client中使用IOCP_1
- 在Client中使用IOCP_2
- C100K_1_新的小目标
- C100K_2_windows_select
- C100K_3_windows_IOCP
- C100K_4_windows
- C100K_5_windows
- C100K_6_linux_epoll1
- C100K_7_linux_epoll2
- C100K_8_模拟客户端的瓶颈1
- C100K_9_模拟客户端的瓶颈2
- C100K_10_本地连接云服务器_CentOS_7.4
- C100K_11_创建5台云服务器_Windows Server 2016
- C100K_12_云服Windows单双网卡性能测试
- 云服务器演示1_Windows Server 2016_C10K
- 云服务器演示2_Windows Server 2016_C100K
- 云服务器演示3_Ubuntu_Server_16.04_C10K
- 云服务器演示4_Ubuntu_Server_16.04_C100K
- 云服务器演示5_Ubuntu_Server_16.04_C100K_云服编译
提交答案
视频学习中有任何产品建议都可由此反
馈,我们将及时处理!
馈,我们将及时处理!
课时介绍
突破Windows下select64限制2-Socket网络通信基础C++ 百万并发网络通信引擎架构与实现 (Socket、全栈、跨平台) Version 1.0
课程介绍
本课程由刘远东、张立铜两位工程师将两人在企业多年积累的开发经验结合而成。从基础的网络知识开始由浅入深地讲解如何使用C++实现一套支持百万级别并发的网络通信引擎。包含:高频并发、多线程、多进程、线程池、内存池、软件硬件瓶颈、如何测试优化网络处理能力等技术知识。可以应用在Windows、Linux、Android、IOS系统上。对从事高性能网络处理的前后端开发人员有极大帮助。咨询群:648738912
推荐课程
信息系统项目管理师自考笔记
李明 · 528人在学
python从0到1:期货量化交易系统(CTP实战,高频及合成K线数据
王先生 · 20743人在学
手把手搭建Java超市管理系统【附源码】(毕设)
汤小洋 · 4085人在学
Java毕设springboot外卖点餐系统 毕业设计毕设源码 使用教
黄菊华 · 734人在学
基于SSM酒店管理系统(毕设)
小尼老师 · 791人在学
java项目实战之购物商城(java毕业设计)
Long · 5096人在学
手把手搭建Java求职招聘系统【附源码】(毕设)
汤小洋 · 1466人在学
Python Django 深度学习 小程序
钟翔 · 2246人在学
城管局门前三包管理系统+微信小程序(vue+springboot)
赖国荣 · 508人在学
Vue+Uni-app(uniapp)入门与实战+赠送仿美团点餐小程序
李杰 · 3860人在学