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

共369节21401人学习张立铜 课程详情
播放页问题反馈
  • 搭建多平台下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_云服编译
  • 案例分析 多线程模型
  • 案例分析 集群方式
  • 案例分析 超大规模通信服务模型

    订阅失败

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

    订阅列表已满,请先移出部分订阅内容。

    当前章节需购买后观看
    开通超级会员免费看!专家精选系列课程,满足你从入门到精通!更有问答月卡免费送,你的问题有问必答!
    提交答案

    购买课程

    扫码完成付费,可继续学习全部课程内容

    加载中...
    正在试验
    后自动删除环境
    课程实验
    本次实验时间已到期 00:00:00
    程序员研修院 v1.1.0
    一、播放器优化
    修改播放器默认倍速设置,增加1.25倍速
    调整目录展示形式,增加折叠/展开
    优化播放器的使用体验,有播放问题可以点击播放页内的”反馈“提交问题
    查看全部版本记录
    课件正在飞速打包中,请耐心等待几秒钟~