课程试听
正在播放

阶段一 C开发实战

展开
第一章 C语言基础语法
1-1 C概述
  • 什么是C语言 免费试学
  • C语言发展历史 免费试学
  • 编写C程序--环境搭建 免费试学
  • 编写C程序--第一个C程序 免费试学
  • 注释 免费试学
  • 程序框架介绍 免费试学
  • System函数 免费试学
  • 常用快捷键 免费试学
  • 代码调试 免费试学
  • C4996错误警告 免费试学
  • 转义字符 免费试学
  • 编译原理 免费试学
  • 代码片段管理工具 免费试学
1-2 数据类型
  • CPU与寄存器 免费试学
  • 内存中的计量单位 免费试学
  • 变量 免费试学
  • 常量 免费试学
  • 关键字 免费试学
  • 标识符命名规则 免费试学
  • 整型--整型的基本使用 免费试学
  • 整型--有符号和无符号整型 免费试学
  • sizeof的使用 免费试学
  • 字符型 免费试学
  • 浮点型 免费试学
  • 字符串 免费试学
  • 输入的输入 免费试学
  • 类型转换 免费试学
1-3 进制转换与数据存储
  • 进制概念
  • 十进制转其他进制
  • 其他进制转十进制
  • 二、八、十六进制转换
  • 程序中输出不同进制
  • 存数据
  • 取数据
  • 补码的意义
  • 数据存取案例
  • char的取值范围以及溢出情况
1-4 运算符
  • 算术运算符
  • 自增自减运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 运算符优先级
1-5 程序流程结构
  • if语句--if语句的三种形式和嵌套
  • if语句--if语句案例
  • if语句--if语句注意事项
  • 三目运算符
  • switch语句
  • while循环
  • while循环案例
  • do while循环
  • do while循环案例
  • for循环
  • for循环案例
  • 循环嵌套循环
  • 循环嵌套循环案例
  • 跳转语句break
  • 跳转语句continue
  • 跳转语句goto
1-6 数组
  • 一维数组定义
  • 一维数组数组名
  • 五只小猪称体重
  • 数组元素逆置
  • 冒泡排序
  • 二维数组定义
  • 二维数组数组名
  • 分数统计
  • 字符数组初始化
  • 字符串长度统计
  • 字符串输入输出
1-7 函数
  • 函数的定义和调用
  • 函数的声明
  • 函数的分类
  • 函数的值传递
  • 函数的分文件编写
  • exit和return的区别
  • 随机数案例
  • 打字游戏案例
1-8 指针
  • 指针的定义和使用
  • 指针所占内存空间
  • 空指针与野指针
  • const修饰指针
  • 不同类型指针区别
  • 指针和数组_01_指针操作数组元素(上)
  • 指针和数组_01_指针操作数组元素(下)
  • 指针和数组_02_指针数组
  • 指针和数组_03_指针在数组中的运算
  • 二级指针
  • 万能指针
  • 指针和函数_01_参数传递方式
  • 指针和函数_02_数组名做函数参数
  • 指针和函数_03_字符数组名做函数参数
  • 指针和函数_04_冒泡排序封装
1-9 字符串
  • 字符串常量和字符串变量
  • strcpy和strncpy
  • strcat和strncat
  • strcmp和strncmp
  • sprintf
  • sscanf
  • strchr
  • strstr
  • strtok
  • atoi
1-10 内存管理
  • 作用域(上)
  • 作用域(下)
  • 内存四区
  • memset
  • 10内存管理_04_memcpy
  • 10内存管理_05_memmove
  • 10内存管理_06_memcmp
  • 10内存管理_07_malloc
  • 10内存管理_08_malloc案例_动态数组
  • 10内存管理_09_内存操作易错点
1-11 复合类型
  • 11复合类型_01_结构体定义和创建
  • 11复合类型_02_结构体成员访问和赋值
  • 11复合类型_03_结构体数组
  • 11复合类型_04_结构体数组排序
  • 11复合类型_05_结构体嵌套结构体
  • 11复合类型_06_结构体指针
  • 11复合类型_07_结构体与堆区
  • 11复合类型_08_结构体做函数参数
  • 11复合类型_09_结构体案例_结构体嵌套一级指针
  • 11复合类型_10_const修饰结构体指针
  • 11复合类型_11_联合体
  • 11复合类型_12_枚举
1-12 文件
  • 12文件_01_文件的基本概念
  • 12文件_02_文件指针
  • 12文件_03_文件打开和关闭
  • 12文件_04_字符方式读写文件
  • 12文件_05_字符读写文件案例
  • 12文件_06_文本文件和二进制文件区别
  • 12文件_07_行方式读写文件
  • 12文件_08_行读写文件案例(上)
  • 12文件_08_行读写文件案例(下)
  • 12文件_09_格式化方式读写文件
  • 12文件_10_格式化读写文件案例
  • 12文件_11_块方式读写文件
  • 12文件_12_文件定位
  • 12文件_13_系统文件指针
  • 12文件_14_文件状态
  • 12文件_15_文件的重命名与删除
  • 12文件_16_比赛成绩管理系统_01_系统需求
  • 12文件_16_比赛成绩管理系统_02_添加菜单界面
  • 12文件_16_比赛成绩管理系统_03_用户交互及退出
  • 12文件_16_比赛成绩管理系统_04_添加新的记录
  • 12文件_16_比赛成绩管理系统_05_查看往届记录
  • 12文件_16_比赛成绩管理系统_06_清空往届记录
  • 12文件_16_比赛成绩管理系统_07_检测空文件
1-13 贪食蛇
  • 13贪食蛇_01_案例介绍
  • 13贪食蛇_02_制作思路
  • 13贪食蛇_03_墙模块
  • 13贪食蛇_04_光标定位
  • 13贪食蛇_05_蛇模块
  • 13贪食蛇_06_食物模块
  • 13贪食蛇_07_蛇的移动
  • 13贪食蛇_08_蛇的方向控制
  • 13贪食蛇_09_蛇吃食物
  • 13贪食蛇_10_蛇的死亡检测
  • 13贪食蛇_11_解决bug和优化游戏
  • 13贪食蛇_12_分数功能
  • 13贪食蛇_13_难度设定
  • 13贪食蛇_14_颜色添加

阶段二 C高级编程

展开
第一章 C高级
1-1 变量和内存分布
  • 01 听课要求
  • 02 技术层次
  • 03 C语言标准
  • 04 数据类型概念
  • 05 typedef的使用
  • 06 void 使用
  • 07 sizeof使用
  • 08 变量的修改方式
  • 09 内存四区-运行前
  • 10 内存四区-运行后
  • 11 上午课程回顾
  • 12 栈区注意事项
  • 13 堆区使用
  • 14 堆区注意事项
  • 15 静态变量和全局变量
  • 16 const修饰的常量
  • 17 字符串常量
  • 01 课程回顾
  • 02 宏函数
  • 03 函数的调用流程
  • 04 调用惯例
  • 05 变量传递分析
  • 06 栈的生长方向
  • 07 内存存储方式
1-2 指针强化
  • 08 空指针和野指针
  • 09 野指针三种情况
  • 10 指针的步长
  • 11 指针步长的练习
  • 12 指针的间接赋值
  • 13 指针做函数参数的输入特性
  • 14 指针做函数参数的输出特性
  • 15 字符串注意事项
  • 16 字符串拷贝
  • 17 字符串翻转
  • 18 sprintf的使用
  • 01 课程回顾
  • 02 calloc和realloc
  • 03 sscanf的使用
  • 04 sscanf的练习
  • 05 sscanf课堂作业
  • 06 字符串强化-查找子串
  • 07 一级指针易错点
  • 08 const的使用场景
  • 09 二级指针做函数参数的输入特性
  • 10 二级指针做函数参数输出特性
  • 11 二级指针练习-文件读写(上)
  • 12 二级指针练习-文件读写(下)
  • 13 位运算
  • 14 移位运算符
  • 01 C提高1~3天复习
  • 02 一维数组名称
  • 03 一维数组名做函数参数
  • 04 数组指针定义
  • 05 数组指针补充
  • 06 二维数组数组名
  • 07 选择排序算法
  • 08 指针数组排序
1-3 结构体和文件的高级用法
  • 09 结构体使用
  • 10 结构体赋值问题以及解决
  • 11 结构体嵌套一级指针的练习
  • 01 课程回顾
  • 02 结构体嵌套二级指针需求分析
  • 03 结构体嵌套二级指针代码实现
  • 04 结构体偏移量
  • 05 内存对齐
  • 06 结构体嵌套结构体内存对齐计算方式
  • 07 文件基本概念
  • 08 文件读写-按字符方式
  • 09 文件读写回顾_格式化和文件光标
  • 10 文件读写注意事项
  • 11 配置文件练习需求
  • 12 配置文件读写(上)
  • 13 配置文件读写(下)
  • 14 文件加密作业布置
  • 01 课程回顾
  • 02 文件加密实现
1-4 链表和回调函数
  • 03 链表的基本概念
  • 04 链表的分类
  • 05 静态链表和动态链表
  • 06 带头节点的链表
  • 07 链表操作-初始化和遍历功能
  • 08 链表操作-插入功能实现
  • 09 链表操作-删除节点功能实现
  • 10 链表操作-清空链表和销毁链表
  • 11 函数指针基本概念
  • 12 函数指针定义方式
  • 13 回调函数案例1-打印任意类型数据
  • 14 回调函数案例2-打印任意类型数组
  • 15 回调函数案例3-查找数组中的元素
  • 01 课程回顾
  • 02 链表作业
  • 03 回调函数作业-实现对任意类型数组进行排序
  • 04 作业补充-堆区数据释放
1-5 编译过程和面向接口
  • 05 预处理指令
  • 06 静态库配置
  • 07 静态库与动态库优缺点
  • 08 动态库配置
  • 09 递归函数-实现字符串逆序输出
  • 10 递归函数案例-斐波那契数列
  • 11 面向接口编程-甲方实现
  • 12 面向接口编程-乙方功能实现以及接口对接
第二章 数据结构
2-1 动态数组和链表
  • 01 C提高day4到day7课程回顾
  • 02 数据结构基本概念
  • 03 动态数组设计
  • 04 动态数组初始化实现
  • 05 动态数组插入和遍历功能实现
  • 06 动态数组删除实现
  • 07 动态数组销毁功能实现
  • 08 动态数组分文件编写
  • 09 链表的设计
  • 10 链表初始化、插入和遍历功能实现
  • 11 删除链表节点的功能实现
  • 12 返回链表长度、清空销毁功能实现
  • 01 课程回顾
  • 02 单向链表企业版本设计思路
  • 03 企业版本链表初始化、插入遍历功能实现
  • 04 企业版本链表删除、销毁功能实现
2-2 栈和队列
  • 05 栈的基本概念
  • 06 栈的顺序存储解析
  • 07 栈的顺序存储实现
  • 08 栈的分文件编写
  • 09 栈的链式存储
  • 10 栈的应用案例-就近匹配思路
  • 11 栈的应用案例-就近匹配代码实现
  • 12 中缀表达式转后缀表达式
  • 13 基于后缀表达式的运算
  • 01 课程回顾
  • 02 队列的基本概念
  • 03 队列的顺序存储实现
  • 04 队列链式存储思路分析
  • 05 队列的链式存储实现
2-3 二叉树
  • 06 树的基本概念 免费试学
  • 07 二叉树的性质 免费试学
  • 08 二叉树递归遍历思路 免费试学
  • 09 二叉树递归遍历代码实现 免费试学
  • 10 二叉树求叶子数量以及统计树高度 免费试学
  • 11 二叉树拷贝 免费试学
  • 12 二叉树释放 免费试学
  • 13 二叉树非递归遍历思路分析 免费试学
  • 14 二叉树非递归遍历 免费试学
  • 15 插入排序 免费试学

阶段三 C++核心编程和桌面应用开发

展开
第一章 C++核心编程
1-1 C++概述
  • 01课前准备
  • 02对比软件的使用
  • 03C++概述
  • 04第一个程序helloworld
  • 05面向对象的三大特性
  • 06命名空间
  • 07作用域运算符
  • 08命名空间小结
  • 09using声明和编译指令
  • 10结构体的加强
  • 11更加严格的类型转换检查
  • 12三目运算符
  • 13小结
  • 14上午回顾
  • 15const修饰的变量
  • 16C++编译器不能优化的情况
1-2 引用
  • 17引用的概述
  • 18引用的注意
  • 19数组的引用
  • 20引用的本质
  • 21尽量用const替代define
  • 22指针的引用
  • 23C和C++的区别
  • 01昨日回顾
  • 02引用的使用场景
  • 03常量引用和bool类型
  • 04内联函数1
  • 05内联函数2
  • 06函数的默认参数和占位参数
  • 07函数的默认参数和占位参数混搭解释
  • 08函数传递参数的三种方式
1-3 类和对象
  • 09设置求圆的周长类
  • 10设计学生类
  • 11上午总结
  • 12上午回顾
  • 13函数重载
  • 14函数重载的原理
  • 15C++调用C语言
  • 16类和对象的概念
  • 17封装
  • 18尽量把成员属性权限设置为私有
  • 19课堂作业
  • 20结构体和类的区别
  • 21总结-02d
  • 01上次内容回顾
  • 02作业
  • 03立方体案例
  • 04点和圆的关系案例思路
  • 05点和圆的关系实现
  • 06案例小结
1-4 构造和析构
  • 07构造函数和析构函数的概念
  • 08构造函数和析构函数的概念
  • 09上午回顾
  • 10默认的构造和析构
  • 11拷贝构造
  • 12构造函数的分类及调用
  • 13构造函数的小结
  • 14匿名对象
  • 15拷贝构造函数的调用时机
  • 16构造函数的调用规则
  • 17多个对象的构造函数和析构函数
  • 18深浅拷贝
  • 01上次内容回顾
  • 02explicit的作用
  • 03new和delete申请堆区空间和释放堆区空间
  • 04堆区申请和释放数组空间
  • 05静态成员
  • 06C++的对象模型
  • 07this指针
  • 08this指针的拓展
  • 09小结
  • 10常函数和常对象
  • 11友元的概念及全局友元函数
  • 12友元类
  • 13类的成员函数成为友元函数
  • 14友元的注意
  • 15防止空指针调用成员函数
  • 16单例模式的实现
  • 17单例模式案例
  • 18总结-04d
1-5 操作符重载
  • 01昨日回顾
  • 02数组类的设计1
  • 03数组类的设计2
  • 04加号运算符重载1
  • 05加号运算符重载2及注意点
  • 06小结
  • 07减号运算符重载
  • 08左移运算符重载及友元
  • 09右移运算符重载
  • 10赋值运算符重载
  • 11关系运算符重载
  • 12前置加加和后置加加
  • 13数组下标重载
  • 14总结-05d
  • 01上次内容回顾
  • 02智能指针类
  • 03仿函数
  • 04其他重载
  • 05字符串类
1-6 继承和多态
  • 06继承的概念
  • 07继承方式
  • 08查看对象模型
  • 09修正私有继承
  • 10上午内容回顾
  • 11继承中的构造和析构的调用
  • 12继承中同名成员的处理方法
  • 13继承中的静态成员特性
  • 14不能被继承的函数
  • 15多继承
  • 16菱形继承
  • 17通过指针访问成员变量
  • 18通过指针访问成员变量解释
  • 19静态编译
  • 20动态编译
  • 21总结-06d
  • 01昨日内容回顾
  • 02多态
  • 03多态的实现原理
  • 04纯虚函数和抽象类
  • 05接口的定义
  • 06模版方法模式
  • 07虚析构函数和纯虚析构函数
  • 08上午回顾
  • 09重写重载重定义
  • 10父类引用子类对象
  • 11动物园案例
  • 12多态案例_班级
  • 13计数器案例
  • 14大总结
第二章 模板和IO
2-1 模版
  • 01函数模版
  • 02函数模版排序
  • 03函数模版和普通函数的区别
  • 04函数模版和普通函数的调用规则
  • 05函数模版的局限性和解决方法
  • 06类模版
  • 07复数的模版类及重载
  • 08类模版做为函数参数
  • 09上午回顾
  • 10类模版的继承
  • 11类模版的成员函数类内类外实现
  • 12类模版分文件编写问题及解决方法
  • 13分文件说明
  • 14类模版和友元
  • 15类模版实现数组
  • 16总结-01m
2-2 异常
  • 01昨日回顾
  • 02C++类型转换
  • 03异常的基本语法及流程
  • 04异常的优势
  • 05异常严格的类型匹配
  • 06异常的接口声明
  • 07栈解旋
  • 08异常的生命周期
  • 09异常的多态
2-3 IO
  • 10上午回顾
  • 11系统的标准异常类
  • 12标准的输入流1
  • 13标准的输入流2
  • 14标准的输出流
  • 15文件读写
  • 16二进制读写文件
  • 17文件读写中有string问题
  • 18总结-02i
第三章 STL
3-1 概述和三大组件
  • 01STL的介绍
  • 02三大组件
  • 03STL的工作原理
  • 04STL的helloworld
  • 05string容器
  • 06小结
3-2 线性容器
  • 07vector容器
  • 08deque容器
  • 09打分案例思路
  • 10打分案例实现1
  • 11打分案例实现2
  • 12总结-01d
  • 01昨日回顾
  • 02stack和queue介绍
  • 03stack和queue的常用api
  • 04list的数据结构
  • 05list常用的api1
  • 06list常用的api2
  • 07电梯案例业务流程
  • 08电梯案例1
  • 09电梯案例2
3-3 非线性容器
  • 10对组
  • 11set容器的介绍
  • 12set容器的api1
  • 13上午内容回顾
  • 14set容器的api2
  • 15map容器的api
  • 16STL的深浅拷贝问题
  • 17案例
  • 18函数对象
  • 19总结-02s
3-4 算法
  • 01上次内容回顾
  • 02适配器1
  • 03适配器2
  • 04空间配置器
  • 05遍历算法
  • 06查找算法1
  • 07查找算法2
  • 08上午回顾
  • 09查找算法3
  • 10排序算法
  • 11拷贝和替换算法
  • 12算术生成算法
  • 13集合算法
  • 14综合案例思路
  • 15综合案例流程
  • 16综合案例实现
  • 17总结-03s
第四章 Qt
4-1 第一个helloworld 界面
  • 01_课程安排
  • 02_qt简介
  • 03_qtCreato简介
  • 04_第一个Hello程序以及qt项目
  • 05_.pro文件介绍
  • 06_Qt命名规范和QtCreator常用快捷键
  • 07_帮助文档的使用
  • 08_父子关系
  • 09_Qt坐标系
  • 10_Qt常用API
  • 11_对象树
  • 12_点击按钮关闭窗口
4-2 信号和槽
  • 13_信号和槽
  • 14_标准信号和槽
  • 15_上午课程回顾
  • 16_自定义信号和槽
  • 17_自定义信号和槽传参以及函数二义性问题解决
  • 18_信号和槽的拓展
  • 19_Qt4的信号和槽
  • 20_qDebug输出转义问题
  • 21_lambda表达式
  • 22_信号和槽的复习
  • 23_作业
4-3 界面控件
  • 01_课程回顾
  • 02_菜单栏
  • 03_工具栏
  • 04_状态栏
  • 05_停靠部件和核心部件
  • 06_ui文件使用
  • 07_资源文件的使用
  • 08_模态对话框和非模态对话框的创建
  • 09_QMessageBox使用
  • 10_文件对话框
  • 11_上午课程回顾
  • 12_布局
  • 13_按钮组
  • 14_listWidget_01
  • 02_listWidget_2
  • 03_treeWidget
  • 04_tableWidget
  • 05_容器
  • 06_其他控件
  • 07_自定义控件
4-4 事件
  • 08_鼠标事件
  • 09_事件分发机制
  • 10_事件过滤器
  • 11_上午课程回顾
  • 12_定时器事件
  • 13_另一种定时器QTimer
  • 14_绘图事件以及QPainter
  • 15_手动触发绘图事件
  • 16_绘图设备
  • 17_作业提示
4-5 返金币游戏案例
  • 01_课程回顾
  • 02_qfile文件读写
  • 03_QFileInfo文件信息获取
  • 04_第一天作业
  • 05_第三天作业
  • 06_翻金币需求分析
  • 07_项目初始化和基础搭建
  • 08_开始场景背景
  • 09_上午课程回顾
  • 10_开始按钮以及动画
  • 11_场景切换实现
  • 12_返回按钮的实现
  • 13_关卡按钮排列
  • 14_作业
  • 01_课程回顾
  • 02_第三个场景基础搭建
  • 03_硬币按钮样式实现
  • 04_硬币翻动动画的实现
  • 05_导入关卡数据
  • 06_翻动上下左右的硬币
  • 07_课程回顾
  • 08_胜利条件判断
  • 09_胜利动画的实现
  • 10_胜利后禁止继续翻动金币
  • 11_音效的添加
  • 12_窗口位置bug的修复
  • 13_打包发布
  • 14_第二天作业
  • 15_总复习

阶段四 Linux高并发服务器开发

展开
第一章 Linux-系统编程
1-1 Linux命令基础
  • 01-命令解析器
  • 02-shell简介
  • 03-bin和dev目录
  • 04-home目录
  • 05-cd命令的使用
  • 06-宿主目录和终端提示符
  • 07-lib库目录
  • 08-tmp、usr和var
  • 09-快捷键的使用
  • 10-Linux 软件在线安装
  • 11-ls-l命令-Linux系统的7种文件类型
  • 12-ls-l命令-文件访问权限
  • 13-ls-l命令-其他几个部分
  • 14-ls命令-其他参数
  • 15-文件目录操作命令-上-touch-mkdir-rm-
  • 16-文件目录操作命令-中-cp-mv-cat
  • 15-文件目录操作命令-下-cat-more-less-tail
  • 17-硬链接和软连接
  • 01-wc和whoami
  • 02-chmod 修改文件权限
  • 03-新增、删除用户和用户组
  • 04-修改文件所有者和所属组
  • 05-find命令-name-type-size
  • 06-find命令-maxdepth-exec-xargs
  • 07-压缩和解压缩
  • 08-软件离线安装
  • 09-vim-3种工作模式
  • 10-vim-切换编辑模式8种方法
  • 11-vim-保存退出和光标移动
  • 12-vim-复制粘贴
  • 13-vim-剪切删除
  • 14-vim-查找替换
  • 15-分屏操作
  • 16-vim的配置
1-2 文件编译、调试及库制作
  • 01-rwx对于文件和目录的区别
  • 02-gcc编译过程
  • 03-数据段合并和地址回填说明
  • 04-gcc编译其他参数
  • 05-函数库简介
  • 06-静态库的使用
  • 07-动态库的简介
  • 08-动态库制作的基本流程
  • 09-启动app错误解决方法12
  • 10-启动app错误解决方法34
  • 11-makefile的一组规则
  • 12-makefile的2个函数
  • 02-makefile自动变量的定义和使用
  • 04-makefile的 ALL和clean的使用
  • 05-模式规则和静态模式规则
  • 06-makefile的其他参数和变量使用
  • 07-gdb调试,基础指令
  • 09-gdb的其他指令
  • 10-补充知识:栈帧
  • 11-gdb中的bt和frame指令
1-3 Linux文件操作
  • 12-man帮助手册组成
  • 13-系统调用和库函数之前的调用关系
  • 14-open和close系统调用
  • 15-3参open创建文件
  • 16-创建文件的权限和umask
  • 03-read和write系统调用
  • 04-mycp函数实现
  • 05-错误处理函数
  • 06-预读入,缓输出
  • 08-文件描述符
  • 08-阻塞和非阻塞
  • 09-read函数的返回值
  • 10-fcntl修改文件访问权限
  • 11-位图的使用
  • 12-lseek函数
  • 13-truncate拓展文件大小
  • 14-传入传出参数
  • 01-文件系统相关概念
  • 02-stat获取文件类型
  • 03-lstat函数和相关知识
  • 04-link和unlink
  • 05-目录操作函数
  • 06-目录操作函数-实现简单ls
  • 07-dup复制文件描述符
  • 09-dup2函数
  • 10-dup2实现cat重定向
  • 11-fcntl实现fd拷贝
1-4 进程
  • 12-并发访问
  • 13-cpu简单介绍
  • 14-MMU简介
  • 15-pcb成员
  • 16-进程的状态
  • 17-环境变量简介
  • 18-fork创建子进程
  • 02-fork子进程相关琐碎知识
  • 03-循环创建n个子进程
  • 04-父子进程异同和共享
  • 05-函数fork的gdb调试
  • 06-execlp函数
  • 07-execl函数
  • 08-其他exec函数
  • 10-回收子进程概念
  • 11-孤儿进程
  • 12-僵尸进程
  • 13-wait回收子进程
  • 14-wait回收子进程-获取退出状态
  • 15-waitpid函数
  • 16-waitpid回收N个子进程
1-5 进程间通信
  • 17-4种IPC方式
  • 18-pipe匿名管道特质和局限性
  • 02-管道的读写行为
  • 03-父子进程ls-wc-l
  • 04-兄弟进程ls-wc-l
  • 05-管道缓存区
  • 06-管道优劣
  • 07-fifo命名管道
  • 08-文件进程间通信
  • 10-mmap-操作函数
  • 12-mmap-建立映射区
  • 13-mmap-使用注意事项
  • 14-mmap一般调用形式
  • 15-父子进程间通信
  • 16-无血缘关系进程间通信
  • 17-匿名映射
1-6 信号
  • 02-信号简介
  • 03-信号相关的概念
  • 04-信号4要素
  • 05-常见产生信号5种方式
  • 06-kill发送信号
  • 07-alarm定时器
  • 08-setitmer定期器
  • 09-自定义信号集操作函数
  • 11-设置屏蔽解除屏蔽操作函数
  • 12-查看未决信号集
  • 13-验证9号和19号信号不能被屏蔽
  • 14-signal实现信号捕捉
  • 15-sigaction函数原型分析
  • 16-sigaction函数实现信号捕捉,及捕捉特性
  • 17-信号捕捉函数回收子进程
  • 18-内核实现信号捕捉
1-7 守护进程
  • 02-创建会话
  • 03-守护进程概念
  • 04-守护进程创建代码
1-8 线程
  • 05-进程和线程的概念
  • 06-线程内核三级映射
  • 07-线程优缺点
  • 08-创建线程和获取线程id的函数
  • 10-创建子线程
  • 11-循环创建N个子线程
  • 12-子线程传参地址错误演示分析
  • 13-主、子线程共享全局变量、堆空间
  • 14-线程退出
  • 15-pthread_join回收线程退出值
  • 16-pthread_detach线程分离
  • 17-杀死线程pthread_cancel
  • 18-进程线程比对
  • 19-线程属性简介
1-9 线程同步
  • 02-线程同步相关概念
  • 03-锁属性-建议锁
  • 04-mutex互斥锁操作函数
  • 05-互斥锁使用的注意事项
  • 06-互斥量的初始化方法
  • 07-死锁
  • 08-读写锁特性
  • 09-读写锁操作函数
  • 10-读写锁使用示例
  • 11-条件变量操作函数
  • 13-生产者消费者模型简单分析
  • 14-条件变量实现生产者消费者模型代码预览
  • 15-条件变量实现生产者消费者模型流程分析
  • 16-条件变量实现生产者消费者模型
  • 17-wait放置到while循环中
  • 18-信号量和信号量操作函数
  • 19-信号量生产者消费者图示分析
  • 20-信号量生产者消费者代码示例
第二章 Linux-网络编程
2-1 套接字通信基础
  • 01-知识点概述
  • 02-两种网络模型
  • 03-服务器开发是什么
  • 04-IP分类
  • 05-IP协议
  • 06-查看ip地址和测试主机之间是否能够通信
  • 07-端口
  • 08-IP和端口的使用以及域名的作用
  • 09-ISO OSI 七层和四层模型
  • 10-网络协议是什么
  • 11-数据在网络环境中的发送和接收过程
  • 12-套接字通信涉及的知识点
  • 13-字节序
  • 14-大小端存储举例
  • 16-IP和端口大小端转换函数
  • 17- 字符串类型的主机字节序IP转网络字节序 - inet_pton
  • 18-网络字节序转字符串类型的主机字节序ip地址 - inet_ntop
2-2 tcp通信
  • 19-tcp特点
  • 20-套接字通信里边的文件描述符结构
  • 21-套接字通信服务器端的通信流程
  • 22-基于tcp的客户端通信流程
  • 23-文件描述符对应的内核缓冲区和读写操作的关系
  • 24-创建套接字函数 socket
  • 25-绑定函数 bind
  • 26-设置监听 listen
  • 27-等待并接受客户端连接请求 - accept 函数
  • 28-接收数据 read recv
  • 29-发送数据和连接函数 write send connect
  • 30-ip和端口需要使用网络字节序
  • 31-基于tcp的服务器端程序-代码
  • 32-基于tcp的客户端实现-代码
  • 33-程序测试
2-3 三次握手四次挥手
  • 01-知识点概述
  • 03-tcp协议
  • 04-三次握手的过程
  • 05-四次挥手的过程
  • 06-滑动窗口的作用
  • 07-滑动窗口的值是如何发送给对方的
  • 08-滑动窗口如何控制发送端阻塞
  • 09-tcp通信关键字解释
  • 10-tcp通信的全部过程分析
2-4 套接字并发服务器
  • 12-昨天套接字服务器的弊端
  • 13-如何通过多进程的方式实现服务器端的并发
  • 14-多进程服务器-1
  • 15-多进程服务器-2
  • 16-多进程版程序-回收子进程被信号中断的处理
  • 17-多线程版tcp服务器处理思路
  • 18-多线程并发服务器编写
  • 19-为什么不能把文件描述符地址传到子线程中
  • 20-多线程程序测试
2-5 tcp状态转换
  • 01-知识点概述
  • 02-多线程多进程服务器细节回顾
  • 03-tcp三次握手过程中状态变化
  • 04-四次挥手过程中的状态转换
  • 05-tcp状态转换图2
  • 06-处于TIME_WAIT的进程等待2msl时长的原因
  • 07-半关闭
  • 08-半关闭函数shutdown()
  • 09-通过netstat命令查看进程的网络状态
  • 10-为什么要设置端口复用
  • 11-端口复用的设置
2-6 IO多路转接之select
  • 12-什么是多路IO转接
  • 15-select函数是如何工作的
  • 16-select函数的细节
  • 17-文件描述符集合操作函数
  • 18-select检测的集合fd_set和文件描述符表的对应关系
  • 19-select函数的使用流程
  • 20-使用select处理服务器端通信-1
  • 21-使用select处理服务器通信-2
  • 22-select集合参数是传入传出要保存原始集合数据
  • 23-select服务器代码
  • 24-select测试
2-7 IO多路转接之epoll
  • 01-知识点概述
  • 03-poll的使用 - 了解内容
  • 04-epoll和select poll的对比
  • 05-epoll的使用步骤
  • 06-创建epoll模型 epoll_create
  • 07-epoll模型节点操作函数 epoll_ctl()
  • 08-epoll检测函数 epoll_wait()
  • 09-epoll_wait第二个传出参数中的数据是怎么来的
  • 10-基于epoll的tcp服务器伪代码
  • 11-epoll服务器代码
  • 13-epoll水平模式的特点
  • 14-水平模式现象演示
  • 15-边沿模式
  • 16-如何给文件描述符设置边沿模式
  • 17-epoll的边沿模式现象演示
  • 18-epoll的边沿模式为什么是非阻塞模式
  • 19-设置文件描述符的非阻塞行为
  • 20-边沿非阻塞的epoll服务器-代码
  • 21-非阻塞读内存如何判断数据读完了-通过错误号
2-8 udp通信
  • 23-udp特点
  • 24-udp通信流程
  • 25-sendto和recvfrom函数
  • 01-知识点概述
  • 02-全局变量errno的值对应的头文件定义
  • 04-udp通信流程
  • 05-udp服务器程序代码
  • 06-udp客户端代码
  • 07-udp通信测试
  • 08-udp的应用场景
  • 11-广播的特点
  • 12-广播的流程
  • 13-设置广播属性使用setsockopt
  • 14-广播代码修改
  • 15-组播特点
  • 17-上午广播bug的修改
  • 18-广播特点总结
  • 19-组播地址
  • 20-组播的通信流程
  • 21-通过setsockopt设置组播属性和加入到多播组
  • 22-组播代码修改
  • 23-组播代码的测试
  • 24-组播特点总结
2-9 本地套接字
  • 25-本地套接字介绍
  • 26-本地套接字服务器端通信流程
  • 27-本地套接字客户端通信流程
  • 28-本地套接字客户端和服务器-代码
  • 29-本地套接字测试-bug修改
  • 30-进程间通信的场景
2-10 libevent
  • 02-libevent 特点介绍
  • 03-libevent的安装和解决动态库找不到的问题
  • 04-事件处理框架的创建
  • 05-启动事件循环 event_base_dispatch() 函数
  • 06-事件的终止函数
  • 07-事件的创建和销毁 struct event
  • 08-将创建的事件添加到事件处理框架 event_add()
  • 09-事件和事件处理框架之间的关系
  • 10-通过event事件写管道-代码
  • 11-使用event事件读写管道测试
  • 12-event_add第二个参数超时时长的说明
  • 14-struct event中的超时处理
  • 15-带缓冲区的事件 bufferevent
  • 16-创建带缓冲区的事件 bufferevent_socket_new()
  • 17-连接服务器函数 bufferevent_socket_connect()
  • 18-bufferevent缓冲区的读写函数 bufferevent_write() bufferevent_read()
  • 19-给bufferevent设置回调函数bufferevent_setcb()
  • 20-bufferevent回调函数的函数原型
  • 21-基于bufferevent的套接字客户端处理流程
  • 22-套接字通信的客户端-1
  • 23-套接字通信的客户端-2
  • 24-客户端套接字程序流程总结
  • 25-创建链接监听器 evconnlistener_new_bind()
  • 26-链接监听器的回调函数
  • 27-链接监听器其他属性设置
  • 28-套接字服务器端处理流程分析
  • 29-套接字服务器程序实现
  • 30-套接字通信的客户端和服务器通信流程串讲和补充以及测试
第三章 Linux-网络编程案例
3-1 案例概述
  • 01-要实现的案例效果展示
3-2 html标签
  • 03-html网页的特点和基本结构
  • 04-设置字体的标签 font
  • 05-段落标签 p
  • 06-单标签 br 和 hr
  • 07-文本格式标签 strong em del ins
  • 08-无序列表 ul
  • 09-有序列表ol
  • 10-自定义列表 dl
  • 11-图片标签-img
  • 12-超链接标签 a
  • 13-表格标签 table
3-3 http请求
  • 14-http协议的划分
  • 15-http请求概述
  • 16-使用get方式向服务器提交数据已经数据格式解析
  • 17-http请求使用post提交数据数据格式
  • 18-get和post请求的区别
3-4 http响应
  • 01-知识点概述
  • 03-http响应消息
  • 04-http响应中的状态码
  • 05-浏览器客户端如何向服务器发送请求分析
  • 06-web服务器端的处理步骤分析
3-5 编写服务器监听代码
  • 07-在vs中创建linux项目
  • 08-初始化监听的套接字-initListenFd()
  • 09-关于阿里云服务器程序访问失败问题
3-6 服务器epoll模型代码
  • 10-启动epoll模型
  • 11-和客户端建立新连接
  • 12-接收客户端的http请求数据
3-7 处理客户端请求
  • 13-上午代码回顾和从接收的数据中读出请求行
  • 14-解析请求行
  • 15-正则表达式以及匹配
3-8 如何向客户端回复数据
  • 16-解析请求行以及后续处理
  • 17-对path处理说明
  • 18-如何回复响应数据
  • 20-关于文件对应content-type如何查询
  • 21-服务器处理流程梳理
3-9 向客户端发送文件
  • 03-和客户端断开连接的处理
  • 04-客户端http请求处理流程回顾
  • 05-发送状态行和响应头
  • 06-根据文件获取content-type和发送文件
  • 07-程序调试和访问文件测试
3-10 向客户端发送目录
  • 08-发送目录主要做什么事儿
  • 09-scandir遍历目录和使用
  • 11-发送目录
  • 12-关于超链接的添加
3-11 程序优化
  • 13-浏览器访问服务器中有中文名文件失败的原因
  • 14-解析访问文件名中的特殊字符串
  • 15-案例的性能优化
3-12 epoll_loop.c文件函数讲解
  • 16-epool_loop.c的main函数
  • 17-initlistensocket 函数
  • 18-acceptconn 函数
  • 19-数据的接收和发送

阶段五 Windows/Linux 跨平台企业项目实战 (项目1)

展开
第一章 数据库
1-1 Oracle数据库
  • 01-Oracle数据库简介
  • 02-Oracle数据库安装
  • 03-Oracle体系结构
  • 04-Oracle基本概念
  • 05-Oracle基本元素
  • 06-Oracle数据库启动和关闭
  • 07-sqlplus登录oracle数据库相关操作
  • 08-sqlplus的基本操作
  • 09-Oracle中上课使用的方案
  • 10-SQL语言分类
  • 11-SQL中select语句语法和注意事项
  • 12-Oracle中查询相关示例
  • 13-上午课程复习
  • 14-别名和distinct去重
  • 15-算术运算和NULL
  • 16-SQL语句中where中日期格式
  • 17-SQL语句中比较运算
  • 18-SQL语句中模糊查询
  • 19-SQL语句中逻辑运算
  • 20-SQL语句排序
  • 21-数值函数
  • 22-日期函数和时间函数
  • 01-上一次课程复习
  • 02-转换函数
  • 03-通用函数(了解)
  • 04-条件表达式
  • 05-分组函数
  • 06-分组数据
  • 07-having过滤
  • 08-笛卡尔积概念
  • 09-多表查询等值连接
  • 10-多表查询不等值连接
  • 11-多表查询外连接
  • 12-多表查询中自连接
  • 13-子查询引出
  • 14-上午课程复习
  • 15-子查询(2)
  • 16-单行子查询
  • 17-多行子查询
  • 18-子查询相关一些问题
  • 19-集合运算符
  • 20-集合运算应用
  • 21-insert语句基本用法
  • 22-地址符
  • 23-批量处理
  • 24-更新数据和删除数据操作
  • 25-事务
  • 01-上一次课复习-09
  • 02-表的创建
  • 03-修改表列
  • 04-请空表
  • 05-删除表和重命名表
  • 06-约束概念和分类
  • 07-约束举例说明
  • 08-视图
  • 09-序列
  • 10-索引
  • 11-同义词
  • 12-SQL和sqlplus区分
  • 13-上午课程复习
1-2 MySql数据库
  • 14-MySQL数据库介绍
  • 15-MySQL数据库安装
  • 16-MySQL数据库启动和登录
  • 17-MySQL数据库CURD
  • 18-MySQL数据库表CURD
  • 19-MySQL数据库表数据CURD
  • 20MysQL基础综合练习
  • 21-MySQL数据库总日期和时间函数
  • 22-MySQL中函数
  • 23-PLSQL工具使用介绍
  • 24-Oracle实例别名和Oracle客户端
  • 01-上一次课复习-10
  • 02-Oracle客户端工具安装
  • 03-MySQL多表查询
  • 04-MySQL约束
  • 05-MySQL中文乱码问题
  • 06-Navicate连接和操作MySQL
  • 07-MySQL参考手册概述
  • 08-C连接MySQL数据库
  • 09-MySQL使用CAPI执行insert语句
  • 10-上午课程复习
  • 11-Makefile编写
  • 12-执行删除和更新SQL语句
  • 13-mysql_error函数应用
  • 14-mysql_store_result获取结果集
  • 15-执行select语句输出结果
  • 16-执行select语句输出结果(2)
  • 17-简单客户端实现
  • 18-MySQL预处理语句
  • 19-MySQL事务
第二章 金融类安全传输平台项目
2-1 项目介绍-密码学知识
  • 01-文档介绍
  • 02-知识点概述
  • 04-项目准备
  • 05-序列化介绍
  • 06-项目中的基础组件介绍
  • 07-基础模块在项目中的作用-简述
  • 08-项目中的其他模块介绍
  • 09-加密三要素
  • 10-对称加密和非对称加密的秘钥
  • 11-对称和非对称加密的特点
  • 12-对称加密算法des
  • 13-3des对称加密算法
  • 14-对称加密算法aes
  • 15-重要知识点回顾
  • 16-秘钥分发过程
  • 17-哈希算法特点
  • 18-常用哈希算法以及散列值长度
  • 19-哈希算法不可逆
  • 20-消息认证码
  • 21-数字签名和校验签名
  • 22-openssl介绍
  • 23-windows下openssl安装
  • 24-vs下openssl的配置
  • 25-openssl在linux下的安装
2-2 git
  • 01-知识点概述
  • 02-版本控制工具的作用
  • 03-git和svn
  • 04-git介绍
  • 05-git的安装
  • 06-工作区 暂存区 版本库 概念
  • 07-本地文件添加到暂存区和提交到版本库
  • 08-文件的修改和还原
  • 09-查看提交的历史版本信息
  • 10-版本差异比较
  • 11-删除文件
  • 12-本地版本管理设置忽略目录
  • 13-远程git仓库介绍
  • 14-创建远程仓库
  • 15-本地仓库中的项目推送到远程仓库
  • 16-将远程仓库内容克隆到本地
  • 17-克隆的应用场景
  • 18-生成rsa秘钥对
  • 19-设置本地ssh秘钥
  • 20-远程仓库ssh公钥设置
  • 21-使用ssh地址进行仓库操作注意事项
  • 22-分支介绍
  • 23-分支的切换
  • 24-合并分支和解决冲突
  • 25-往远程非空仓库推动本地仓库内容
  • 26-git提交代码操作
  • 27-protobuf部署
2-3 序列化-protobuf使用
  • 01-知识点概述new
  • 02-如何使用uml描述一个类
  • 03-uml描述继承关系
  • 04-uml中描述关联关系
  • 05-uml中对组合和聚合的描述
  • 06-uml中的依赖关系的描述
  • 07-uml总结
  • 08-序列化介绍
  • 09-网络通信中常见问题分析
  • 10-常用的数据序列化方式
  • 11-protobuf使用步骤
  • 12-编写proto文件并生成对应的类
  • 13-protobuf生成的类分析
  • 14-复习
  • 15-protobuf序列化数据和解析
  • 16-protobuf中数组的使用 - repeated
  • 17-protobuf中使用枚举
  • 18-在一个proto中导入其他proto文件
  • 19-测试在一个类中包含其他类对象
  • 20-protobuf中添加命名空间
  • 21-要实现的编解码的类
2-4 工厂模式-套接字通信
  • 01-知识点概述
  • 02-解决windows下动态库找不到的问题
  • 03-编解码类图分析
  • 04-通过protobuf生成需要的c++类
  • 05-编解码基类Codec实现
  • 06-编解码类代码分析
  • 07-工厂模式介绍
  • 08-简单工厂模式实现-伪代码
  • 09-工厂模式使用-伪代码
  • 10-编解码类图
  • 11-服务器通信效率分析
  • 12-线程池设计思路
  • 13-线程池相关
  • 14-客户端效率的优化
  • 15-套接字连接池实现-伪代码
  • 16-连接池 c api
  • 17-套接字通信C语言api分析
  • 18-套接字通信客户端类封装
  • 19-服务器端C++类设计 - 有问题
  • 20-服务器端类改进
  • 21-封装之后的套接字类服务器和客户端通信流程 - 伪代码
  • 22-套接字类图
2-5 共享内存
  • 01-知识点概述
  • 02-tcp类封装对应的头文件分析
  • 03-TcpServer类实现代码分析
  • 04-tcp服务器代码分析
  • 05-套接字超时处理思想
  • 06-accept超时处理
  • 07-read超时处理
  • 08-write超时处理
  • 09-connect超时处理思路
  • 10-connect超时等待设置
  • 11-tcp粘包的原因
  • 12-粘包的解决
  • 13-项目中对粘包问题的处理
  • 14-共享内存使用流程
  • 15-创建或打开共享内存
  • 16-进程和共享内存关联-shmat
  • 17-进程和共享内存分离
  • 18-共享内存操作
  • 19-共享内存进程间通信测试
  • 20-共享内存思考的问题
  • 21-共享内存操作命令和key==0的情况
  • 22-ftok函数
  • 23-内存映射区和共享内存区别
  • 24-共享内存类的封装
  • 25-共享内存子类功能-读写共享内存
2-6 使用openssl加解密
  • 01-知识点概述
  • 02-哈希的特点和常用的哈希算法散列值长度
  • 03-linux下openssl相关的安装问题
  • 04-md5 api
  • 05-其他的哈希算法使用
  • 06-sha1测试
  • 07-哈希类的封装
  • 08-非对称加密特点和应用场景
  • 09-生成密钥对-rsa
  • 10-在内存中生成rsa密钥对-代码
  • 11-将密钥对写入磁盘
  • 12-使用bio方式将秘钥写入磁盘文件中
  • 13-从内存RSA对象中取出公钥或私钥信息
  • 14-rsa加解密函数
  • 15-rsa使用公钥加密数据-代码
  • 17-rsa加解密测试-bug修改
  • 18-rsa签名和校验签名
  • 19-签名和验证签名-代码
  • 20-rsa类的封装
  • 21-aes知识点回顾
  • 22-对象加密- 密码分组模式
  • 23-初始化对称加密的秘钥
  • 24-aes加解密函数AES_cbc_encrypt
  • 25-aes加解密-代码
2-7 jsoncpp-秘钥协商
  • 01-知识点概述
  • 02-openssl rsa内存释放
  • 03-json介绍
  • 04-json数组和json对象
  • 05-写json文件注意事项
  • 06-vs下jsoncpp库的生成
  • 07-linux下jsoncpp环境搭建
  • 08-jsoncpp中Value类api
  • 09-jsoncpp中的Reader类
  • 10-jsoncpp中的FasterWrite类
  • 11-组织json数据写磁盘
  • 12-jsoncpp测试
  • 13-秘钥协商客户端需求分析
  • 14-秘钥协商客户端操作流程
  • 15-秘钥协商服务器端业务数据分析
  • 16-秘钥协商服务器业务流程
  • 17-任务
  • 18-在vs编写linux项目需要设置的一些属性
2-8 秘钥协商
  • 01-秘钥协商客户端main函数
  • 02-main函数的逻辑处理
  • 03-客户端构造函数实现
  • 04-在项目中添加已经封装好的类
  • 05-客户端数据初始化并序列化
  • 06-rsa非对称加密类走读
  • 07-生成对象加密的密钥对和签名
  • 08-秘钥协商客户端功能实现
  • 09-启动服务器
  • 10-服务器端处理流程和线程回调函数类型
2-9 秘钥协商-base64
  • 01-知识点概述
  • 02-main函数中代码修改
  • 03-秘钥协商客户端代码细节修改
  • 04-秘钥协商服务器读配置文件
  • 05-秘钥协商服务器启动代码
  • 06-服务器线程回调函数实现
  • 07-签名校验
  • 08-生成随机秘钥
  • 09-服务器给客户端回复数据
  • 10-客户端程序调试
  • 11-服务器程序编译调试
  • 12-签名和校验签名的段错误
  • 13-签名和验证签名bug修改
  • 14-rsa加密直接对二进制数据进行操作的bug
  • 15-base64介绍
  • 16-base64应用场景
  • 17-通过base64算法推导出的结论
  • 18-qt中base64编解码的api
  • 19-openssl中bio链的工作模式
  • 20-openssl中创建bio对象的两种方式
  • 21-bio对应的读写函数
  • 22-bio链中添加和删除节点
  • 23-bio链写数据举例
  • 24-通过openssl进行base64编码
  • 25-通过openssl进行base64解码
  • 26-log日志类概述
  • 27-连接池的使用场景
  • 28-连接池代码分析
2-10 共享内存和数据库操作
  • 01-知识点概述
  • 02-使用base对加解密数据进行编解码处理
  • 03-项目测试-未完待续
  • 04-测试和设置随机数种子
  • 05-项目中秘钥协商模块和业务模块的关系
  • 06-共享内存中对秘钥的存储
  • 07-存储共享内存的数据结构定义
  • 08-共享内存类
  • 09-在项目中添加秘钥写共享内存的操作-思路
  • 10-centos下防火墙设置
  • 11-启动和关闭oralce数据库复习
  • 12-oralce数据操作c++接口occi
  • 13-occi使用之前需要知道的问题
  • 14-在程序中使用occi接口的大致流程
  • 15-创建测试项目并初始化occi环境
  • 16-occi中创建连接数据库的Connection实例
  • 17-使用occi接口查询并遍历结果集
  • 18-occi进行插入操作
  • 19-linux下occi环境配置
  • 20-occi接口测试
  • 21-使用plsql develop导入脚本文件
  • 22-配置oracle数据库连接名
2-11 数据库操作
  • 01-知识点概述
  • 02-occi中事务操作
  • 03-数据表介绍
  • 04-关于数据库中创建的第二个用户
  • 05-项目中秘钥协商对应的数据库操作
  • 06-项目中数据库操作对象的添加和初始化
  • 07-共享秘钥写入数据库
  • 08-写数据库操作先关occi函数封装和使用
  • 09-验证秘钥写数据功能
  • 10-配置管理终端的作用
  • 11-在qt中通过源码编译oci驱动
  • 12-qt中的QSqlDatabase类常用 的api
  • 13-qt中数据库查询相关的api函数
  • 14-qt中连接数据代码
  • 15-数据库查询遍历结果集
  • 16-qt中的数据库事务操作
  • 17-qt中连接mysql的注意事项
  • 18-配置管理终端作用
  • 19-QJsonDocument和QJsonArray类
  • 20-json对象类
  • 21-QJsonValue类
  • 22-将json数组或对象转换为字符串步骤
2-12 外联接口-项目总结
  • 01-知识点概述
  • 02-秘钥协商的秘钥写入到共享内存中
  • 03-秘钥写共享内存测试
  • 04-外联接口作用
  • 05-外联接口类的封装
  • 06-配置文件定义
  • 07-外联接口的打包
  • 08-外联接口的实现
  • 09-外联接口读共享内存得到秘钥
  • 10-将外联接口制作成动态库
  • 11-外联接口的使用
  • 12-外联接口测试-有bug
  • 13-外联接口测试
  • 14-外联接口的改进
  • 15-知识点总结
  • 16-项目中的知识点总结-2
  • 17-线程池思想
  • 18-ora-24550解决方案
  • 19-秘钥注销和校验

阶段六 游戏服务器开发 (项目2)

展开
第一章 zinx框架使用
1-1 git命令使用
  • 1-服务器需求分析
  • 2-面向框架编程简介
  • 3-zinx框架初始
  • 4-回显标准输入
  • 5-vs结合git
  • 6-完善readme范例
  • 7-添加退出功能
  • 8-添加命令处理类
  • 9-添加日期前缀思路
  • 10-添加日期前缀功能
1-2 zinx的学习
  • 1-zinx框架建议用法
  • 2-三层结构重构原有功能
  • 3-实现三层结构回显
  • 4-添加关闭输出功能
  • 5-添加日期前缀功能
  • 6-tcp数据适配
  • 7-tcp通道实现
  • 8-协议层记录消息来源
1-3 zinx的扩展
  • 1-timer_fd产生超时事件
  • 2-timer_fd使用案例
  • 3-初次实现定时器
  • 4-定时器管理思路
  • 5-定时器管理类实现
  • 6-第一版本定时器的缺陷
  • 7-时间轮定时器原理
  • 8-时间轮定时添加删除任务
  • 9-调度时间轮
  • 10-时间轮定时器完善
  • 11-向开源项目贡献代码
第二章 游戏业务实现
2-1 TCP通讯以及protobuf
  • 0-游戏业务分层
  • 1-游戏通道层实现
  • 2-消息结构设计
  • 3-消息类实现
  • 4-Tcp粘包处理思路
  • 5-TCP粘包实现
  • 6-tcp粘包测试
  • 7-协议层序列化实现
2-2 AOI业务逻辑
  • 0-项目进度回顾
  • 1-完善整体架构
  • 2-AOI网格思路
  • 3-网格AOI数据结构
  • 4-游戏世界类添加,删除和构造
  • 5-AOI查找实现
  • 6-GameRole类结合AOI
  • 7-登陆时发送ID和姓名
  • 8-登陆时发送周围玩家位置
  • 9-玩家上线完成
  • 10-玩家下线处理
2-3 玩家聊天以及出生地
  • 1-世界聊天思路
  • 2-世界聊天实现
  • 3-玩家移动思路
  • 4-玩家移动初始实现
  • 5-视野切换实现
  • 6-随机出生
  • 7-内存泄漏查看
  • 8-退出程序思路
  • 9-定时退出程序实现
  • 10-随机姓名思路
  • 11-随机姓名实现
2-4 redis的使用
  • 0-当前进度
  • 1-守护进程
  • 2-进程监控
  • 3-玩家姓名添加文件
  • 4-文件删除玩家姓名
  • 5-redis安装
  • 6-redis-存取命令
  • 7-redis链表存取
  • 8-redis程序结构
  • 9-hiredisAPI使用
  • 10-基于redis查找玩家姓名
  • 11-Makefile编写
  • 12-游戏业务实现总结
第三章 zinx抽象框架实现
3-1 zinx的epoll反应堆
  • 1-框架需求分析
  • 2-输入回显功能分析
  • 3-kernel中的epoll
  • 4-回显功能完成
  • 5-通道类抽象
  • 6-抽象通道的输出函数
  • 7-通道抽象实现
  • 8-管道通道类实现
  • 9-FIFO打开阻塞解决
3-2 zinx责任链抽象
  • 0-转大写字母思路
  • 1-转大写输出实现
  • 2-责任链模式思路
  • 3-责任链模式实现
  • 4-通道层重构设计和消息设计
  • 5-责任链重构通道和功能处理
  • 6-sourceinsight安装和使用
  • 7-框架代码分析
3-3 zinx的TCP通道实现
  • 0-TCP通道遇到的问题
  • 1-工厂方法模式分析
  • 2-基于工厂方法设计TCP通道类
  • 3-TCP监听通道实现
  • 4-TCP数据通道实现
  • 5-TCP数据通道测试
  • 6-框架分发
  • 7-tcp客户端非阻塞connect
  • 8-框架内部实现总结
第四章 商业化部署
4-1 docker基本使用
  • 1-多实例部署方案
  • 2-容器的概念
  • 3-docker初识
  • 4-docker-仓库
  • 5-docker-镜像
  • 6-docker-容器
  • 7-docker和虚拟机的区别
  • 8-docker命令解释
  • 9-dockerfile构建镜像
  • 10-离线分发镜像
4-2 nginx和http
  • 1-容器运行游戏需求分析
  • 2-静态编译游戏服务
  • 3-手动创建游戏镜像
  • 4-编写游戏启动脚本
  • 5-脚本创建游戏服务器镜像
  • 6-登陆服务器架构选择
  • 7-http协议初识
  • 8-http报文分析
  • 9-nginx简介和安装
  • 10-Nginx配置静态页面
  • 11-Nginx配置反向代理
4-3 CGI和fastCGI
  • 1-CGI程序处理流程
  • 2-CGI程序的输入
  • 3-CGI程序读取环境变量和标准输入
  • 4-FastCGI程序简介
  • 5-FCGI结合SpawnFCGI使用
  • 6-添加注册静态页面
  • 7-摘要值计算脚本
  • 8-注册页面和处理框架搭建
  • 9-用户信息存储和查询实现
  • 10-注册业务流程梳理
4-4 qt登录器实现
  • 1-界面搭建
  • 2-登陆客户端步骤分析
  • 3-拼接登陆请求实现
  • 4-发送http请求
  • 5-服务器登陆请求处理
  • 6-客户端处理服务器回复数据
  • 7-注册页面启动
  • 8-qt启动游戏程序
4-5 游戏房间创建实现
  • 1-客户端创建房间修改
  • 2-创建容器脚本
  • 3-服务器创建房间实现
  • 4-房间跟随
  • 5-分布式部署思路
  • 6-redis发布订阅机制
  • 7-hiredis库实现发布订阅
  • 8-异步处理hiredis订阅
  • 9-跨主机redis通信
4-6 游戏房间容器化
  • 1-分布式部署设计
  • 2-分布式部署的CGI程序实现
  • 3-容器管理进程
  • 4-分布式测试
  • 5-容器退出思路
  • 6-容器退出删除房间实现
  • 7-分布式跟随房间实现
  • 8-创建qt客户端安装包
4-7 RPC以及cmake
  • 1-RPC概念
  • 2-RPC实现计算举例
  • 3-python进行rpc调用
  • 4-thrift实现分布式容器创建
  • 5-阶段总结
  • 6-cmake简介
  • 7-cmake使用的一般步骤
  • 8-cmake编译多层次文件
  • 9-cmake编译多种交付件

阶段七 入侵检测与网络攻防(赠送)

展开
第一章 网络攻防实战
1-1 网络攻防以及信息搜集和扫描
  • 01_课程安排
  • 02_课程介绍
  • 03_渗透测试的介绍
  • 04_ptes渗透测试执行标准的介绍
  • 05_网络攻防环境的介绍
  • 06_kali系统的介绍和调整
  • 07_搜索引擎踩点
  • 08_dnsenum和nslookup
  • 09_whois命令
  • 10_traceroute命令
  • 11_复习
  • 12_traceroute原理
  • 13_telnet命令
  • 14_在线存活ping
  • 15_nmap扫描1
  • 16_nmap扫描2
  • 17_p0f被动探测
  • 18_nessus的安装
  • 2019-04-28 17-49-58
1-2 暴力破解
  • 02_nessus扫描任务
  • 03_漏洞信息共享平台的介绍
  • 04_nessus扫描结果
  • 05_漏扫报告的查看
  • 06_暴力破解以及hydra的使用
  • 07_crunch命令生成字典
  • 08_其他方式获取字典
  • 09_复习
  • 10_关于暴力破解的防御的讨论
  • 11_pam配置的讲解
  • 12_pam弱密码保护
  • 13_pam锁定账户
  • 14_shadow文件的解析
  • 15_hashcat命令的使用
1-3 网络嗅探以及ARP攻击
  • 02_tcpdump基本使用
  • 03_tcpdump条件过滤
  • 04_wireshark的介绍
  • 05_wireshark条件过滤
  • 06_tcp握手挥手分析
  • 07_telnet服务的介绍和部署
  • 08_复习
  • 09_telnet服务的报文嗅探
  • 10_网络嗅探基础
  • 11_arp协议的解析
  • 12_arp攻击原理以及实验环境
  • 13_arp实验以及防御方式
1-4 web扫描以及DDoS攻击
  • 02_web敏感信息
  • 03_web信息搜集——踩点
  • 04_dirb命令的使用及原理
  • 04_暴力扫描的防护讨论
  • 05_owasp介绍
  • 06_DDoS的介绍
  • 07_复习
  • 08_synflood原理
  • 09_synflood攻击实现细节
  • 10_netwox发起synflood攻击
  • 11_synflood的防御
  • 12_netwox其他工具介绍
  • 13_iptables四表五链
1-5 防火墙iptables
  • 02_iptabels的caommand
  • 03_iptables的条件判断
  • 04_iptables ssh服务器环境搭建
  • 05_ping attack的防护
  • 06_复习
  • 07_iptabels规则的导出和导入
  • 08_tcpwrapper
  • 09_审计服务介绍和安装
  • 10_审计服务的规则配置
  • 11_生产环境审计配置
  • 12_auditctl命令
  • 13_ausearch命令
  • 14_aureport命令
1-6 权限控制以及入侵分析
  • 02_基础命令
  • 03_访问的概念
  • 04_文件权限的标记位
  • 05_目录的权限
  • 06_粘着位
  • 07_setuid和setgid
  • 08_acl的设置和删除
  • 09_复习
  • 10_acl的掩码
  • 11_权限判断的依据
  • 12_文件属性
  • 13_特权能力
  • 14_入侵检测——可疑用户
  • 15_入侵检测——自启动服务
  • 16_入侵检测——shell自启动命令
  • 17_入侵检测——命令历史的查看
第二章 项目实战—深度报文解析
2-1 DPI项目初始化搭建
  • 02_入侵分析——日志查看
  • 03_入侵分析——可以进程
  • 04_报文解析项目介绍
  • 05_dpi项目的需求分析
  • 06_pcap文件的获取
  • 07_pcap文件的介绍
  • 08_pcap文件编程实现报文计数
  • 09_复习
  • 10_dpi库的设计
  • 11_dpi库的接口基本实现
  • 12_pcap透传参数实现以太网报文计数
  • 13_以太网分析packet header长度问题
  • 14_报文分析思路路径
  • 15_解析以太网报文的类型
  • 16_ip报文的统计
2-2 IP/TCP报文拆解以及SSH识别
  • 02_ip报文结构讲解
  • 03_ip报文分片讨论
  • 04_ip报文解析的实现
  • 05_日志模块的讨论
  • 06_tcp报头解析
  • 07_复习
  • 08_协议遍历的实现
  • 09_流程回顾以及调整
  • 10_ssh协议分析以及解析思路
  • 11_识别ssh版本协商报文1
  • 12_识别ssh版本协商报文2
  • 13_剩余报文识别思路
2-3 链表的使用以及UDP报文识别
  • 02_剩余报文识别的编程思路
  • 03_容器选择的讨论
  • 04_链表的设计理念
  • 05_循环上相链表的实现
  • 06_实现连接的存储
  • 07_复习
  • 08_ssh剩余报文的识别实现
  • 09_UDP报文解析基础分析
  • 10_sftp命令的使用
  • 11_tftp服务的安装
2-4 TFTP和NTP报文的识别
  • 02_tftp客户端的使用
  • 03_tftp协议分析以及特征提取
  • 04_tftp报文的识别1
  • 05_tftp报文的识别2
  • 06_复习
  • 07_ntp协议原理
  • 08_ntpdate同步时间和抓包
  • 09_ntp协议解析
  • 10_ntp报文识别实现
  • 11_bug追踪系统

阶段八 Shell脚本编程

展开
第一章 Shell脚本编程
1-1 shell语法
  • 01_shell的介绍
  • 02_shell的内建命令
  • 03_shell脚本执行的几种方法
  • 04_变量的使用
  • 05_变量的使用
  • 06_文件名代换和参数拓展
  • 07_命令代换
  • 08_算数代换
  • 09_shell中的转义
  • 10_引号
  • 11_复习
  • 12_条件测试
  • 13_if分支结构
  • 14_case分支结构
  • 15_for循环
  • 16_while循环
  • 17_位置参数以及shift
  • 18_shell中的输出
  • 01_复习
  • 02_管道1
  • 03_管道2
  • 04_重定向
  • 05_函数
  • 06_函数2
  • 07_脚本调试的集中方法
1-2 shell高级和正则表达式
  • 08_正则表达式
  • 09_C中使用正则
  • 10_复习
  • 11_sort命令
  • 12_uniq命令
  • 13_wc命令
  • 14_grep命令
  • 15_find命令
  • 16_xargs命令
  • 17_sed命令
  • 18_awk命令
  • 19_crontab

阶段九 负载均衡远程服务调用系统(赠送)

展开
第一章 Reactor并发服务器框架
1-1 基础TCP服务
  • 1-Lars课程模块介绍
  • 2-Lars的功能演示机场景作用
  • 3-Lars的Reactor框架的组成部分
  • 4-Lars-Reactor的项目目录构建
  • 5-Lars-tcp_server的基础服务开发
  • 6-Lars-tcp-server的accept实现
  • 7-LarsV0.1总结
1-2 自定义内存池管理
  • 8-内存管理_io_buf的结构分析
  • 9-Lars-内存管理-io_buf内存块的实现
  • 10-io_buf总结
  • 11-buf_pool连接池的单例模式设计和基本属性
  • 12-buf_pool的初始化构造内存池
  • 13-buf_pool的申请内存和重置内存实现
  • 1-课前回顾
1-3 Reactor事件触发机制
  • 2-LarsV0.2-reactor_buf实现
  • 3-LarsV0.2-outpu_buf实现
  • 4-larsV0.2-reactor继承内存管理
  • 5-LarsV0.2-流程总结
  • 6-LarsV0.3-多路IO事件的分析
  • 7-LarsV0.3-io_event和event_loop定义
  • 8-LarsV0.3-event_loop添加一个事件
  • 9-LarsV0.3-event_loop的epoll_wait封装
  • 10-LarsV0.3-event_loop删除事件
  • 11-LarsV0.3-event_loop添加listenfd读事件
  • 12-LarsV0.3-event_loop添加写事件-基于V0.3开发
  • 13-LarsV0.3总结
1-4 TCP连接封装与TcpClient封装
  • 1-LarsV0.3回顾
  • 2-解决粘包问题的message结构体定义
  • 3-LarsV0.4-链接对象的方法和属性的定义
  • 4-LarsV0.4-tcp_conn链接的初始化
  • 5-LarsV0.4-tcp_conn处理读事件方法do_read
  • 6-LarsV0.4-tcp_conn模块回顾
  • 7-LarsV0.4-send_message主动发包实现
  • 8-LarsV0.4-tcp_conn处理写时间方法do_write
  • 9-LarsV0.4-tcp_server创建tcp_conn对象
  • 10-LarsV0.4-tcp_conn连接封装流程总结
  • 11-LarsV0.4-tcp_client属性和方法分析
  • 12-LarsV0.4-tcp_client非阻塞客户端套接字创建链接方式
  • 13-LarsV0.4-tcp_client读写方法实现
  • 14-LarsV0.4-tcp_client模块客户端实现问题
  • 15-LarsV0.4-tcp_client-send_message无效问题解决
  • 16-LarsV0.3-event_loop添加时间buf修复
  • 1-LarsV0.4复习
1-5 消息路由分发机制
  • 2-LarsV0.5-tcp_server链接管理的功能实现及测试
  • 3-LarsV0.6-消息路由分发机制msg_router的定义
  • 4-LarsV0.6-抽象链接类net_connection的定义
  • 5-LarsV0.6-tcp_server集成路由消息分发机制
  • 6-LarsV0.6-tcp_server集成消息路由分发机制总结
  • 7-LarsV0,6回顾
  • 8-LarsV0.6-tcp_client集成消息路由分发机制
1-6 连接Hook注册机制
  • 9-LarsV0.7-Hook流程的说明
  • 10-LarsV0.7-tcp_server集成链接Hook函数
  • 11-LarsV0.7-tcp_client集成连接Hook注册功能
1-7 消息队列与线程池
  • 1-昨日回顾
  • 2-单线程的多路IO服务器模型和多线程模型区别
  • 3-服务器的几种并发模型
  • 4-LarsV0.8-task_msg消息队列任务数据类型
  • 5-LarsV0.8-thread_queue消息队列的发送和接收流程介绍
  • 6-LarsV0.8-thread_queue消息队列的实现
  • 7-LarsV0.8-thread_pool线程池的实现
  • 8-LarsV0.8-处理新链接任务的函数业务实现
  • 9-LarsV0.8-线程池继承到tcp_server中
  • 10-LarsV0.8-启用线程池测试
  • 11-LarsV0.8-限制链接数量的溢出bug问题
1-8 UDP Server功能
  • 12-LarsV0.9-配置文件功能
  • 13-LarsV0.10-udp-server的实现
  • 14-LarsV0.10-udp-client的实现
1-9 QPS性能测试
  • 1-昨日回顾
  • 2-QPS_test-protobuf协议的集成
  • 3-QPS_test-server端实现
  • 4-QPS_test-qps简单介绍
  • 5-QPS_test-qps客户端工具编写和性能测试
1-10 异步消息任务功能与连接属性
  • 6-LarsV0.11-异步消息机制的event_loop增添属性分析
  • 7-Lars
  • 8-LarsV0.11-异步消息发送机制的实现及测试
  • 9-LarsV0.11-异步消息任务机制bug修复和效果演示
  • 10-LarsV0.12-连接参数属性的绑定
第二章 LarsDns子系统
2-1 Dns-Route关系构建
  • 11-Lars-dns-mysql环境搭建
  • 1-LarsDNS-系统整体模块的简单说明
  • 2-Lars-Dns-功能的说明
  • 3-Lars-Dns-数据表的创建
  • 4-Lars-Dns-整体功能说明
  • 5-Lars-DnsV0.1-Route类的单例实现
  • 6-Lars-DnsV0.1-Route类的链接数据库方法实现
  • 7-Lars-DnsV0.1-定义存放RouteData关系的map数据结构
  • 8-课前回顾
  • 9-Lars-DnsV0.1-将RouteData数据加载map中
  • 10-Lars-Dns的proto协议定义
  • 11-Lars-DnsV0.1-实现获取Route信息功能
  • 12-Lars-DnsV0.1获取Route hosts信息测试
  • 13-Lars-DnsV0.1总结
2-2 订阅功能与发布功能
  • 1-lars-DnsV0.1回顾
  • 2-Lars-DnsV0.2-订阅功能的订阅模块分析
  • 3-Lars-DnsV0.2-订阅模块的类的单例创建及方法属性初始化
  • 4-Lars-DnsV0.2-发布功能的实现
  • 5-Lars-DnsV0.2-发布功能的总结
  • 6-Lars-DnsV0.2-订阅流程复习
  • 7-Lars-DnsV0.2-订阅模块的集成
  • 8-Lars-DnsV0.2订阅模块的测试
  • 9-Lars-DnsV0.2订阅模块测试2
  • 10-Lars-DnsV0.2的发布问题bug修复
  • 11-Lars-DnsV0.2订阅发布流程梳理
2-3 实时监测与自动发布功能
  • 1-LarsDns-V0.3BackenThread后端实时监控线程流程
  • 2-LarsDns-V0.3加载当前Route版本号方法实现
  • 3-LarsDns-V0.3加载RouteChange修改表的信息
  • 4-LarsDns-V0.3实现实时监控流程线程业务
  • 5-LarsDnsV0.3编译bug修改和功能测试
  • 6-Lars Web管理界面的集成
  • 7-LarsDnsV0.3 Dns模块总结
第三章 LarsReporter子系统
3-1 上报功能与存储线程池
  • 8-Lars-reportV0.1 report模块介绍
  • 9-Lars-reporterV0.1 reporter项目目录构建
  • 10-Lars-ReporterV0.1 数据表和proto协议环境搭建
  • 11-Lars-ReporterV0.1上报请求业务处理
  • 12-Lars-ReporterV0.1上报请求模块的测试
  • 13-Lars-ReporterV0.2开辟存储线程池-网络存储分离
第四章 LarsLbAgent负载均衡系统
4-1 Agent代理模块基础构建
  • 1-课程复习
  • 2-Lars-lbAgentV0.1-udpserver启动
  • 3-Lars-lbAgentV0.1-dns-reporter-client-thread启动
  • 4-Lars-lbAgentV0.1-dns-client实现
  • 5-Lars-lbAgentV0.1-dns-client编译错误修正
  • 6-Lars-lbAgentV0.1-reporter_client实现
4-2 获取主机信息功能
  • 7-Lars-lbAgentV0.2-赋值均衡数据结构关系分析
  • 8-Lars-lbAgent0.2-host_info-load_balance-route_lb数据结构的定义
  • 9-Lars-lbAgentV0.2-proto协议的定义
  • 10-Lars-lbAgentV0.2-route_lb与UDP server的关联
  • 10-Lars-lbAgentV0.2-route_lb与UDP server的关联程序编译
  • 11-Lars-lbAgentV0.2-route_lb更新host主机路由信息业务和调试
  • 11-Lars-lbAgentV0.2-route_lb获取host信息不存在情况
  • 1-昨日回顾及agent获取host信息流程
  • 2-Lars-LbAgentV0.2-Api获取主机信息-更新流程梳理
  • 3-Lars-LbAgentV0.2-Api-load_balance模块更新主机信息实现
  • 4-Lars-LbAgentV0.2-Api目录结构创建
  • 5-Lars-LbAgentV0.2-Api创建udp连接实现-lars-lbagent启动失败修正
  • 6-Lars-LbAgentV0.2-Api-getHost请求实现
  • 7-Lars-LbAgentV0.2-loadBalance-选择主机业务实现
  • 8-Lars-LbAgentV0.3-api-get_hostAPI接口测试
  • 9-Lars-LbAgentV0.3-api-get_hostAPI流程总结
  • 10-Lars-LbAgentV0.4-api-上报业务实现
4-3 负载均衡算法与实现
  • 1-lars 系统架构回顾
  • 2-lars-lbAgentV0.4-route_lb处理report业务流程
  • 3-lars-lbAgentV0.4-负责均衡判断参数配置
  • 4-lars-lbAgentV0.4-负载均衡idle节点的失败率判断
  • 5-lars-lbAgentV0.4-负载均衡overload节点的成功率判断
  • 6-lars-lbAgentV0.4-负载均衡上报提交模块
  • 7-lars-lbAgentV0.4-数据问题修改-上报业务测试
  • 8-lars-lbAgentV0.4-模拟器测试工具
  • 9-lars-lbAgentV0.5-idle连续成功-overload连续失败的定期窗口重置机制
  • 10-lars-lbAgentV0.6-loadbalance主动更新主机信息功能
  • 1-昨日回顾
  • 2-Lars-LbAgentV0.7-GetRouteAPI实现
  • 3-Lars-LbAgentV0.7-Udp-server-获取路由服务业务注册
  • 4-Lars-LbAgentV0.7-Udp-server-API和udpserver的测试
4-4 集成测试与自动启动脚本
  • 5-Lars-LbAgentV0.7-route_lb获取路由全部主机信息实现
  • 6-Lars-LbAgentV0.7-API模块注册功能实现和测试工具get_host,get_route,example,simulator实现
  • 7-Lars-LbAgentV0.7-项目构建工具
  • 8-Lars-LbAgentV0.7-启动工具脚本实现
  • 8-Lars-有关fd泄露的调试办法
  • 9-Lars-qps性能测试
  • git企业开发基本流程

阶段十 GO语言微服务项目(赠送)

展开
第一章 go语言概述
1-1 基础环境配置
  • 01-go语言介绍-课程介绍
  • 02-GOPATH-GOROOT配置
  • 03-helloworld详解
1-2 go语言整体介绍
  • 04-go语言介绍1
  • 05-go语言特点2
  • 06-go命令-设置git终端方法
第二章 go语言基础语法
2-1 go语言基础语法
  • 07-变量定义
  • 08-自增语法
  • 09-指针
  • 10-go不支持的语法
  • 11-string
2-2 go语言与c语言差异化功能
  • 12-定长数组-forrange
  • 14-动态数组追加元素
  • 15-切片截取-copy-make介绍
  • 16-map介绍
  • 17-函数
  • 18-内存逃逸
  • 19-import
2-3 go语言与c语言细节语法对比
  • 02-命令行参数-switch
  • 03-标签与continue-goto-break配合使用
  • 04-枚举const-iota
  • 05-结构体基本语法
  • 06-init函数
  • 07-defer-文件读取-匿名函数
第三章 go语言类操作
3-1 封装
  • 08-类封装-绑定方法
3-2 继承
  • 09-类的继承
3-3 多态
  • 11-类访问权限-字段大小写-public-private
  • 12-接口类型介绍
  • 13-多态介绍
第四章 go语言高并发
4-1 go程基础概念
  • 14-go程介绍-demo演示
  • 15-return-exit-goexit区别
4-2 go程实现通信
  • 16-多go程通信-channel
  • 17-通道读写次数不对等会出现-崩溃-内存泄露
4-3 go程高级用法
  • 18-(for-range变量管道)
  • 02-管道总结
  • 03-判断管道是否已经关闭
  • 04-单向通道
  • 05-(select)
第五章 socket套接字
5-1 server与client基础通信
  • 06-socket-client-server通信过程分析
  • 07-socket-server-单次处理
  • 08-socket-client
5-2 server与client高级通信
  • 09-socket-server-多连接建立
  • 10-socket-client多次发送数据
第六章 http编程
6-1 http请求协议
  • 12-http介绍
  • 13-http请求格式详解
  • 14-http请求头代码演示-postman
6-2 http响应协议
  • 15-http响应格式详解
  • 16-http响应代码演示
  • 17-http-server代码实现
6-3 json编解码
  • 18-json编解码介绍
  • 19-结构体标签(tag)
第七章 网络聊天室案例
7-1 聊天室设计分析
  • 02-聊天室-功能分析-效果演示-技术分析
  • 03-socket-server建立成功
  • 04-聊天室设计分析
  • 05-聊天室设计分析2
7-2 聊天室基础模块搭建
  • 06-定义User和map结构
  • 07-创建message广播通道
  • 08-广播go程持续监听-增加defer-msg改为缓冲
  • 09-用户管道数据回写到客户端的go程
7-3 聊天室命令实现
  • 11-who命令介绍
  • 12-rename命令介绍1
  • 13-rename命令实现2
  • 14-用户主动退出ctrl+c
  • 15-超时退出-map竞争需要上锁
第八章 微服务基础技术
8-1 微服务简介
  • 01-项目简介
  • 02-单体式架构
  • 03-微服务优缺点
  • 04-单体式和微服务区别
8-2 rpc和rpc服务
  • 05-RPC简介
  • 06-RPC使用步骤
  • 07-注册RPC服务函数接口
  • 08-绑定服务和调用方法函数接口
  • 09-rpc服务端和客户端编码实现
  • 10-json的rpc
  • 11-rpc的封装
  • 12-rpc封装小结
8-3 基于protobuf的grpc
  • 13-protobuf语法回顾
  • 14-protobuf的编译、和其他序列化比较
  • 15-查看protoc编译文件对比自定义封装
  • 16-grpc安装简介
  • 17-grpc服务远程调用作业布置
  • 01-作业-grpc-server端
  • 02-作业-grpc-client端
第九章 微服务和服务发现
9-1 consul服务发现
  • 03-go-micro简介
  • 04-服务发现的简单认识
  • 05-consul的安装
  • 06-consul常用的命令
  • 07-注册服务到consul并验证
  • 08-consul健康检查
  • 09-consul结合grpc使用-上(只实现grpc远程调用)
  • 10-consul结合grpc使用-中(注册服务到consul)
  • 11-consul结合grpc使用-下(client从consul获取服务连接)
  • 12-consul结合grpc使用-小结
  • 13-服务注销
9-2 go-micro框架
  • 14-创建go-micro项目-查看生成的 proto文件
  • 15-创建go-micro项目-查看生成的main文件和handler目录文件
  • 01-http补充说明知识
  • 02-go-micro框架服务端-客户端测试
9-3 gin框架实现web端
  • 03-gin框架介绍和测试
  • 04-gin框架客户端与micro服务端对接
  • 05-使用访问发现consul测试
  • 06-consul使用图解和RESTful
  • 07-MVC简介
  • 08-创建项目-创建目录结构-查看文档-导入错误处理包
  • 09-创建项目-资源目录html介绍
第十章 图片、短信验证码生成及存储
10-1 生成图片验证码
  • 10-session的处理
  • 01-获取网页图片验证码ID
  • 02-测试图片验证码
  • 03-图片验证码模块集成
  • 04-图片验证码功能移植微服务
  • 05-图片验证码功能对接微服务的web实现
  • 06-对接微服务的web实现步骤小结
10-2 redis数据库应用
  • 07-Redis数据库基本操作回顾
  • 08-go语言操作Redis数据库API介绍
  • 09-go语言操作Redis数据库-测试案例
  • 10-在微服务端添加redis数据库存储
  • 11-对应web端实现及流程总结
10-3 阿里平台短信验证码
  • 12-开发者平台简介
  • 13-阿里云申请账号说明
  • 01-申请账号测试作业复习
  • 02-短信验证码测试及使用流程总结
  • 03-获取短信验证码-提取URL中GET请求携带的数据
  • 04-短信验证码实现
  • 05-短信验证码存入Redis数据库
  • 06-微服务实现短信验证码-生成微服务-修改密码本
  • 07-微服务实现短信验证码-移植发送短信验证码功能
  • 08-微服务实现短信验证码-修改连接池初始化位置
  • 09-短信验证码-微服务对应的客户端实现
  • 10-短信验证码-微服务对应的客户端实现流程总结
  • 11-获取绑定数据-Request-Payload
第十一章 gorm框架
11-1 gorm框架操作MySQL
  • 01-gorm介绍
  • 02-MySQL操作回顾
  • 03-gorm创建表
  • 04-MySQL的init函数说明
  • 05-gorm框架提供的MySQL连接池
  • 06-gorm插入数据
  • 07-gorm查询数据
  • 08-gorm更新数据
  • 09-gorm软删除-创建表
  • 10-gorm软删除-实现
  • 10-MySQL的8小时时区问题
  • 12-gorm实现创建表指定属性
  • 13-初始化MySQL连接池-创建项目用表
第十二章 用户信息处理
12-1 用户注册
  • 01-微服务实现用户注册-微服务端-上
  • 02-微服务实现用户注册-微服务端-下
  • 03-微服务实现用户注册-web端
  • 04-微服务实现用户注册-web端-流程小结
  • 05-获取地域信息-读MySQL写Redis入
  • 06-获取地域信息-先查redis-没有读MySQL写入
12-2 Cookie、Session和用户登录
  • 07-Cookie简介
  • 08-Session简介
  • 09-Cookie和Session的对比和生成
  • 10-Cookie操作练习
  • 11-Session的操作练习-上-初始化容器
  • 12-Session的操作练习-下-设置属性获取session
  • 13-获取手机号密码登录用户-存入session
  • 01-修改GetSession函数,完成用户登录
  • 02-用户退出登录
12-3 获取、更新用户信息
  • 03-获取用户信息-上
  • 04-获取用户信息-下
  • 05-更新用户名实现
12-4 中间件
  • 06-中间件简介和中间件类型
  • 07-中间件测试和模型分析
  • 08-中间件测试案例和小结
  • 09-项目使用中间件
第十三章 图像存储展示和其他业务
13-1 fastDFS图像管理
  • 10-测试-上传头像到test目录
  • 11-云存储扯淡和作业布置
  • 01-fastDFS的安装配置和启动
  • 02-fastDFS-Nginx模块的安装配置和启动
  • 03-go语言使用fastDFS-Nginx模块
  • 04-go-fastDFS框架及环境测试
  • 05-按字节上传头像并展示到浏览器
  • 06-用户头像上传-集成到项目中
13-2 其他重复业务和脚本管理
  • 07-用户实名认证
  • 08-发布房屋信息
  • 09-上传房屋图片
  • 10-其他房屋操作
  • 11-脚本管理项目
第十四章 docker基础-镜像-容器管理
14-1 docker简介
  • 01-知识点概述
  • 02-docker是什么
  • 03-docker和虚拟机的区别
  • 04-docker架构
14-2 docker快速入门
  • 05-docker安装
  • 06-docker的删除
  • 07-docker加速器设置
  • 08-docker操作的权限问题
  • 09-dcoker服务器相关的操作命令
  • 10-docker镜像的查询和下载
14-3 docker镜像管理
  • 11-镜像的查看
  • 12-镜像的重命名和删除
  • 13-镜像的导出-save
  • 14-镜像的导入-load
  • 15-查看镜像的历史记录
  • 16-查看镜像的详细的属性信息
  • 17-docker镜像操作命令总结
14-4 docker容器管理
  • 18-查看容器的信息-docker ps
  • 19-容器 的创建
  • 20-容器的启动
  • 21-容器的创建和启动-docker run
  • 22-容器的暂停重启
  • 23-容器的关闭stop kill
  • 24-容器的删除
  • 25-容器的进入 docker exec
  • 26-查看容器的详细信息
  • 27-容器端口映射查看和容器重命名
  • 28-容器命名总结
第十五章 docker数据卷-网络管理
15-1 docker数据卷简介
  • 01-知识点概述
  • 02-镜像的两种导入导出方式
  • 03-文件拷贝
  • 04-数据卷挂载命令
  • 05-数据卷挂载两种方式
15-2 docker数据卷实践
  • 06-数据卷容器概念
  • 07-数据卷容器挂载的步骤
  • 08-数据卷容器挂载操作
  • 09-数据卷容器数据备份
  • 10-数据卷容器数据备份演示
  • 11-数据卷容器数据还原
15-3 docker网络管理
  • 12-端口映射和随机分配端口
  • 13-nginx介绍
  • 14-手动指定端口映射
  • 15-网络管理命令ls inspect使用
15-4 docker网络模型实践
  • 16-docker常用的网络模式
  • 17-创建桥接网络
  • 18-容器加入到指定网络中
  • 19-容器添加到网络和从网络中删除
  • 20-host网络的使用
15-5 dockerfile简介
  • 21-dockerfile介绍
  • 22-dockerfile演示
15-6 dockerfile快速入门
  • 23-dockerfile的run和maintainer
  • 24-RUN和EXPOSE关键字
  • 25-ENTRYPOINT和CMD关键字
  • 26-COPY,ADD,VOLUME关键字
第十六章 Dockerfile && docker-compose
16-1 dockerfile语法介绍
  • 01-知识点概述
  • 02-dockerfile复习
  • 03-环境变量ENV的使用
  • 04-WORKDIR的使用
  • 05-USER和ARG的使用
  • 06-ONBUILD的使用
  • 07-dockerfile的缓存相关的参数
  • 08-dockerfile的编写
  • 09-测试-没成功-好像是网不行
16-2 docker-compose快速入门
  • 10-docker-compose介绍
  • 11-docker-compose的安装
16-3 docker-compose命令详解
  • 12-yaml文件书写规则
  • 13-yaml中的数据类型
  • 14-docker-compose配置文件格式
  • 15-docker-compose中的关键字
  • 16-prots和volumes关键字的使用
  • 17-volumes_from的使用
  • 18-extends的使用
  • 19-networks的使用
  • 20-docker-compose启动和关闭容器
  • 21-docker-compose的start stop rm命令

阶段十一 打车软件项目(赠送)

展开
第一章 打车软件—java基础编程
1-1 java语法
  • 1-项目结构介绍
  • 2-helloworld
  • 3-java中的类的基本定义
  • 4-java中的值传递和引用传递
  • 5-java中的常量final
  • 6-java中的static
  • 7-java中的extends继承和final方法
  • 8-instanceof关键字
  • 9-java中的array
  • 10-java中的String对象
  • 11-java中的date
  • 12-java中的finalize方法和垃圾回收器
  • 13-java中的文件操作
  • 14-java中的abstract关键字
  • 15-java中的interface接口
  • 16-java中import和package
第二章 打车软件—Android基础UI开发
2-1 Android组建编程
  • 17-android环境
  • 1-项目演示
  • 2-创建TextView控件
  • 3-创建一个button控件
  • 4-日志的调试
  • 5-editText控件
  • 6-checkBox控件和登陆界面布局
2-2 登录界面实现
  • 7-中午回顾
  • 8-登陆界面的布局实现
  • 9-界面的跳转
  • 10-注册界面的实现
  • 11-Activity的生命周期
  • 12-autoCompleteTextView控件
第三章 打车软件—JNI终端编程业务
3-1 JNI编程
  • 1-昨日回顾
  • 2-配置JNI开发环境
  • 3-java调用jni接口
  • 4-java调用传参int类型的jni接口
  • 5-java调用传参bool类型的jni接口
  • 6-java调用传参String类型jni接口
3-2 登录及注册与libcurl集成
  • 7-Login登陆JNI接口的封装
  • 8-Login接口集成json接口
  • 9-curl环境的搭建
  • 1-libcurl的编程(1)
  • 2-libcurl的编程(2)-post请求
  • 3-libcurl的编程(3)-处理服务器返回的数据
  • 4-Android上部署libcurl
  • 5-Android上集成libcurl编程
  • 6-libevent的http-server
  • 7-登陆模块和服务器通信调试
  • 1-reg注册jni接口实现-封装Json类
  • 2-reg注册jni接口实现-封装Curl类
3-3 git版本控制
  • 3-git的简介
  • 4-git的下载和提交代码
  • 5-git添加一个新文件
  • 5-删除一个文件
  • 6-git的批量添加和提交文件
  • 7-git重命名文件名
  • 8-git解决代码冲突
  • 9-git的分支的概念
  • 10-创建项目代码仓库
  • 1-git提交代码复习
3-4 https协议
  • 2-https的认证和加密过程
  • 3-搭建libevnet-https环境
  • 4-测试Android-jni的login模块https通信
3-5 session开发
  • 5-server服务器的git环境搭建
  • 6-实现注册业务web-server和data-server的通信
  • 7-sessionid的生成
第四章 打车软件—地图编程及服务端业务
4-1 高德地图API
  • 1-创建高德远程应用和key的注册
  • 2-配置高德so及jar包环境
  • 3-创建高德地图
  • 4-amap和uisetting修改地图属性
  • 5-开启定位服务
  • 6-添加覆盖物
  • 7-以自我为中心展示地图
  • 8-构建司机界面
  • 9-构建乘客界面
  • 1-搜索POI兴趣点
  • 2-关键字匹配列表展示InputTips
  • 3-高德地图的线路规划
4-2 项目业务开发
  • 4-项目业务-司机和乘客的状态转换
  • 5-数据的设计
  • 6-地理位置信息GeoHash和redis的Geo操作
  • 7-司机的业务(上)
  • 8-下单业务
  • 9-司机的业务(下)
  • 10-完成订单业务
  • 11-乘客的业务
  • 1-注册业务代码走读
  • 2-登陆的业务代码走读
  • 3-下单业务
  • 4-司机的业务代码走读
  • 5-完成订单业务代码走读