getfromcode

大丙课堂C++欢乐斗地主游戏-网络版

后端开发
课程简介

这套资料聚焦于使用 C++ 构建具备持久化能力的网络版欢乐斗地主游戏,核心在于打通客户端、服务器端与数据库的完整链路。它不是简单的单机逻辑演示,而是深入探讨 Socket 通信、多线程服务端处理以及 Qt 界面交互的工程化实现。对于已经掌握 C++ 基础语法、了解类与对象概念,并初步接触过网络编程(如 Socket 基础)的开发者而言,这是一份极具参考价值…

已有 24 人浏览 发布 2026-03-01 更新 2026-09-28

这套资料聚焦于使用 C++ 构建具备持久化能力的网络版欢乐斗地主游戏,核心在于打通客户端、服务器端与数据库的完整链路。它不是简单的单机逻辑演示,而是深入探讨 Socket 通信、多线程服务端处理以及 Qt 界面交互的工程化实现。对于已经掌握 C++ 基础语法、了解类与对象概念,并初步接触过网络编程(如 Socket 基础)的开发者而言,这是一份极具参考价值的实战素材。它解决了从“代码能跑”到“系统可用”之间的断层,展示了如何在一个真实的游戏场景中整合前后端逻辑。

工程环境与架构搭建

建议优先关注项目概述与开发环境配置部分,特别是 CLion 与 Qt Creator 在 CMake 项目中的协同工作流。资料中详细演示了服务器端与客户端代码在不同 IDE 下的迁移与重构过程,包括 CMakeLists.txt 文件的配置细节。这部分内容对于理解跨平台 C++ 项目的构建机制至关重要。通过观察如何将分散的代码模块整合进统一的 CMake 构建系统,你可以学习到如何管理多文件工程,以及如何处理头文件依赖关系。这是后续进行任何复杂 C++ 网络应用开发的基础,务必结合本地环境反复调试,确保构建流程顺畅。

核心逻辑与数据持久化

在环境搭建完成后,重点转向服务器端的核心业务逻辑。资料涵盖了从基础的用户注册、登录验证到游戏协议的处理。特别值得注意的是数据库交互部分,通过 MySQL API 的集成,展示了如何将用户数据持久化存储。这里不仅涉及 SQL 语句的编写,更关键的是如何安全地在 C++ 应用层调用数据库接口,处理连接池、事务以及异常捕获。建议对照源码,梳理从客户端发起请求、服务器解析指令、查询/更新数据库到返回结果的完整数据流。这一过程是后端开发的核心,理解它有助于你掌握高可用后端服务的基本设计模式,避免硬编码和状态丢失的问题。

独立实践与资料配合

学完这套资料,你应当具备独立搭建一个简易 C++ 网络服务的能力,能够使用 Qt 编写图形化客户端,并通过 Socket 与服务器通信,同时实现用户数据在 MySQL 中的存取。为了最大化学习效果,不要仅停留在观看视频层面。建议采用“对照式”学习法:先根据视频思路搭建空项目框架,再逐步引入 Socket 模块,最后接入数据库。在遇到 CMake 配置错误或数据库连接超时问题时,尝试独立排查,这比直接复制代码更能积累经验。将这套斗地主游戏的架构作为模板,你可以将其扩展为其他类型的网络应用,如即时通讯或简易电商后端,从而真正掌握 C++ 在网络编程领域的工程化应用能力。

课程目录:

01_1.-项目概述.mp4 02_2.-课程大纲.mp4 03_3.-Clion-的安装和PJ.mp4 04_4.-服务器代码迁移到-Clion---上.mp4 05_5.-服务器代码前移到-Clion---下.mp4 06_6.-客户端代码迁移---上.mp4 07_7.-QtCreator-CMake-项目中生成的-CMakeLists.txt.mp4 08_8.-客户端代码迁移---下.mp4 09_9.-在-QtCreator-的-CMake-项目列表中显示头文件.mp4 100_100.-通过-Navicat-创建数据库和导入数据库表.mp4 101_101.-通过-sql-语句-创建数据库和导入数据库表.mp4 102_102.-添加-MySQL-API.mp4 103_103.-服务器端处理用户注册.mp4 104_104.-服务器端处理用户登录.mp4 105_105.-客户端登录和注册的后续处理.mp4 106_106.-登录和注册bug的修改以及测试.mp4 107_107.-记住密码功能的实现.mp4 108_108.-游戏模式界面的搭建.mp4 109_109.-游戏模式窗口按钮功能的处理.mp4 10_10.-protobuf-是什么.mp4 110_110.-解决窗口关闭问题.mp4 111_111.-添加-json-配置文件存储数据库信息.mp4 112_112.-添加-Json-解析类.mp4 113_113.-从配置文件中加载数据连接MySQL.mp4 114_114.-在服务器端添加-redis.mp4 115_115.-连接redis服务器.mp4 116_116.-通过redis-存储RSA密钥对-上.mp4 117_117.-通过redis-存储RSA密钥对-下.mp4 118_118.-在客户端实现创建、加入、搜索房间的功能-1.mp4 119_119.-在客户端实现创建、加入、搜索房间的功能-2.mp4 11_11.-protobuf-的安装.mp4 120_120.-关于如何使用-redis-分配房间的细节分析.mp4 121_121.-服务器端对玩家加入房间的处理-1.mp4 122_122.-服务器端对玩家加入房间的处理-2.mp4 123_123.-服务器端对玩家加入房间的处理-3.mp4 124_124.-服务器端对玩家加入房间的处理-4.mp4 125_125.-添加-RoomList-单例类解决多线程访问问题.mp4 12_12.-protobuf-使用流程概述.mp4 13_13.-使用protobuf-序列化数据---上.mp4 14_14.-使用-Protobuf-序列化数据---下.mp4 15_15.-protobuf-中嵌套复合数据类型的序列.mp4 16_16.-在-protobuf-中使用枚举.mp4 17_17.-在-proto文件中导入其他-proto-文件.mp4 18_18.-protobuf-中包的使用.mp4 19_19.-在widnows中编译和部署protobuf.mp4 20_20.-Protoc-工具在-IDE-中的配置.mp4 21_21.-openssl-概述.mp4 22_22.-加密三要素.mp4 23_23.-对称加密算法-DES-3DES-AES.mp4 24_24.-密码分组模式---ECB-和-CBC.mp4 25_25.-密码分组模式---OFB-CFB-和-CTR.mp4 26_26.-非对称加密和秘钥分发.mp4 27_27.-哈希的特点.mp4 28_28.-常用的哈希算法和哈希值长度.mp4 29_29.-数字签名.mp4 30_30.-在-Windows-中安装部署-openssl.mp4 31_31.-在-Linux-中安装部署-openssl.mp4 32_32.-redis-概述.mp4 33_33.-redis的安装和测试.mp4 34_34.-redis-中字符串操作相关的常用命令.mp4 35_35.-redis-列表操作相关的常用命令.mp4 36_36.-redis-集合操作相关的常用命令.mp4 37_37.-redis-排序集合相关的常用命令.mp4 38_38.-redis-中哈希相关的常用命令.mp4 39_39.-redis-中键值操作相关的常用命令.mp4 40_40.-redis-配置文件中的常用配置项.mp4 41_41.-redis-配置文件配置项测试.mp4 42_42.-redis-的两种数据持久化方式.mp4 43_43.-redis-持久化相关的配置.mp4 44_44.-redis-plus-plus-客户端的安装.mp4 45_45.-MySQL的安装.mp4 46_46.-设计登录和注册窗口.mp4 47_47.-搭建登录窗口界面.mp4 48_48.-使用正则表达式校验用户名.mp4 49_49-使用正则表达式校验密码.mp4 50_50.-使用正则表达式校验手机号、IP、端口.mp4 51_51.-在QLineEdit中如何进行数据校验以及测试.mp4 52_52.-添加单例类用于数据管理.mp4 53_53.-将项目中多线程方式修改为线程池.mp4 54_54.-在项目中添加套接字通信的模块和源文件.mp4 55_55.-客户端套接字通信类的定义.mp4 56_56.-套接字通信-API---连接服务器.mp4 57_57.-套接字通信-API---读写操作的超时检测.mp4 58_58.-套接字通信-API---控制读写数据的读写数量.mp4 59_59.-套接字通信-API---接收和发送数据.mp4 60_60.-添加用于数据序列化的-protbuf-类.mp4 61_61.-封装项目数据的序列化和反序列化过程.mp4 62_62.-openssl-头文件介绍.mp4 63_63.-openssl-中计算哈希值的api.mp4 64_64.-openssl-中对称加密的api.mp4 65_65.-对称加密AES类的封装-上.mp4 66_66.-对称加密AES类的封装-中.mp4 67_67.-对称加密AES类的封装-下.mp4 68_68.-openssl-非对称加密-api---生成密钥对.mp4 69_69.-openssl-非对称加密-api---读写秘钥.mp4 70_70.-openssl-非对称加密-api---加解密和签名.mp4 71_71.-非对称加密RSA类的封装---定义RSA类.mp4 72_72.-非对称加密RSA类的封装---生成密钥对.mp4 73_73.-非对称加密RSA类的封装---公钥加密和私钥解密.mp4 74_74.-非对称加密RSA类的封装---签名和签名校验.mp4 75_75.-非对称机密RSA类的封装---加载公钥或私钥到-EVP_PKEY-中.mp4 76_76.-非对称加密RSA类的封装---类的API测试.mp4 77_77.-Base64.mp4 78_78.-openssl-中如何使用base64进行编解码.mp4 79_79.-Base64类的封装.mp4 80_80.-Base64类测试.mp4 81_81.-把客户端的编解码类移植到服务器端.mp4 82_82.-在服务器端对加密类进行重构.mp4 83_83.-服务器端哈希类的封装-上.mp4 84_84.-服务器端哈希类的封装-下.mp4 85_85.-哈希类的bug修改.mp4 86_86.-登录和注册细节剖析.mp4 87_87.-在客户端添加用于通信的任务类.mp4 88_88.-将客户端通信的任务对象添加到线程池.mp4 89_89.-客户端登录和注册的数据处理.mp4 90_90.-客户端代码bug修改.mp4 91_91.-服务器端发送公钥的流程处理.mp4 92_92.-服务器端程序bug的修改.mp4 93_93.-连接客户端和服务器-上.mp4 94_94.-连接客户端和服务器-下.mp4 95_95.-对称加密的秘钥分发---上.mp4 96_96.-对称加密的秘钥分发-下.mp4 97_97.-通过可调用对象实现服务器端数据的发送.mp4 98_98.-AES秘钥分发测试.mp4 99_99.-添加AES对称加密处理.mp4

课程目录

课程目录124 集
  • 01_1.-项目概述.mp4
  • 02_2.-课程大纲.mp4
  • 03_3.-Clion-的安装和PJ.mp4
  • 04_4.-服务器代码迁移到-Clion---上.mp4
  • 05_5.-服务器代码前移到-Clion---下.mp4
  • 06_6.-客户端代码迁移---上.mp4
  • 07_7.-QtCreator-CMake-项目中生成的-CMakeLists.txt.mp4
  • 08_8.-客户端代码迁移---下.mp4
  • 09_9.-在-QtCreator-的-CMake-项目列表中显示头文件.mp4
  • 100_100.-通过-Navicat-创建数据库和导入数据库表.mp4
  • 101_101.-通过-sql-语句-创建数据库和导入数据库表.mp4
  • 102_102.-添加-MySQL-API.mp4
  • 103_103.-服务器端处理用户注册.mp4
  • 104_104.-服务器端处理用户登录.mp4
  • 105_105.-客户端登录和注册的后续处理.mp4
  • 106_106.-登录和注册bug的修改以及测试.mp4
  • 107_107.-记住密码功能的实现.mp4
  • 108_108.-游戏模式界面的搭建.mp4
  • 109_109.-游戏模式窗口按钮功能的处理.mp4
  • 10_10.-protobuf-是什么.mp4
  • 110_110.-解决窗口关闭问题.mp4
  • 111_111.-添加-json-配置文件存储数据库信息.mp4
  • 112_112.-添加-Json-解析类.mp4
  • 113_113.-从配置文件中加载数据连接MySQL.mp4
  • 114_114.-在服务器端添加-redis.mp4
  • 115_115.-连接redis服务器.mp4
  • 116_116.-通过redis-存储RSA密钥对-上.mp4
  • 117_117.-通过redis-存储RSA密钥对-下.mp4
  • 118_118.-在客户端实现创建、加入、搜索房间的功能-1.mp4
  • 119_119.-在客户端实现创建、加入、搜索房间的功能-2.mp4
  • 11_11.-protobuf-的安装.mp4
  • 120_120.-关于如何使用-redis-分配房间的细节分析.mp4
  • 121_121.-服务器端对玩家加入房间的处理-1.mp4
  • 122_122.-服务器端对玩家加入房间的处理-2.mp4
  • 123_123.-服务器端对玩家加入房间的处理-3.mp4
  • 124_124.-服务器端对玩家加入房间的处理-4.mp4
  • 125_125.-添加-RoomList-单例类解决多线程访问问题.mp4
  • 12_12.-protobuf-使用流程概述.mp4
  • 13_13.-使用protobuf-序列化数据---上.mp4
  • 14_14.-使用-Protobuf-序列化数据---下.mp4
  • 15_15.-protobuf-中嵌套复合数据类型的序列.mp4
  • 16_16.-在-protobuf-中使用枚举.mp4
  • 17_17.-在-proto文件中导入其他-proto-文件.mp4
  • 18_18.-protobuf-中包的使用.mp4
  • 19_19.-在widnows中编译和部署protobuf.mp4
  • 20_20.-Protoc-工具在-IDE-中的配置.mp4
  • 21_21.-openssl-概述.mp4
  • 22_22.-加密三要素.mp4
  • 23_23.-对称加密算法-DES-3DES-AES.mp4
  • 24_24.-密码分组模式---ECB-和-CBC.mp4
  • 25_25.-密码分组模式---OFB-CFB-和-CTR.mp4
  • 26_26.-非对称加密和秘钥分发.mp4
  • 27_27.-哈希的特点.mp4
  • 28_28.-常用的哈希算法和哈希值长度.mp4
  • 29_29.-数字签名.mp4
  • 30_30.-在-Windows-中安装部署-openssl.mp4
  • 31_31.-在-Linux-中安装部署-openssl.mp4
  • 32_32.-redis-概述.mp4
  • 33_33.-redis的安装和测试.mp4
  • 34_34.-redis-中字符串操作相关的常用命令.mp4
  • 35_35.-redis-列表操作相关的常用命令.mp4
  • 36_36.-redis-集合操作相关的常用命令.mp4
  • 37_37.-redis-排序集合相关的常用命令.mp4
  • 38_38.-redis-中哈希相关的常用命令.mp4
  • 39_39.-redis-中键值操作相关的常用命令.mp4
  • 40_40.-redis-配置文件中的常用配置项.mp4
  • 41_41.-redis-配置文件配置项测试.mp4
  • 42_42.-redis-的两种数据持久化方式.mp4
  • 43_43.-redis-持久化相关的配置.mp4
  • 44_44.-redis-plus-plus-客户端的安装.mp4
  • 45_45.-MySQL的安装.mp4
  • 46_46.-设计登录和注册窗口.mp4
  • 47_47.-搭建登录窗口界面.mp4
  • 48_48.-使用正则表达式校验用户名.mp4
  • 49_49-使用正则表达式校验密码.mp4
  • 50_50.-使用正则表达式校验手机号、IP、端口.mp4
  • 51_51.-在QLineEdit中如何进行数据校验以及测试.mp4
  • 52_52.-添加单例类用于数据管理.mp4
  • 53_53.-将项目中多线程方式修改为线程池.mp4
  • 54_54.-在项目中添加套接字通信的模块和源文件.mp4
  • 55_55.-客户端套接字通信类的定义.mp4
  • 56_56.-套接字通信-API---连接服务器.mp4
  • 57_57.-套接字通信-API---读写操作的超时检测.mp4
  • 58_58.-套接字通信-API---控制读写数据的读写数量.mp4
  • 59_59.-套接字通信-API---接收和发送数据.mp4
  • 60_60.-添加用于数据序列化的-protbuf-类.mp4
  • 61_61.-封装项目数据的序列化和反序列化过程.mp4
  • 62_62.-openssl-头文件介绍.mp4
  • 63_63.-openssl-中计算哈希值的api.mp4
  • 64_64.-openssl-中对称加密的api.mp4
  • 65_65.-对称加密AES类的封装-上.mp4
  • 66_66.-对称加密AES类的封装-中.mp4
  • 67_67.-对称加密AES类的封装-下.mp4
  • 68_68.-openssl-非对称加密-api---生成密钥对.mp4
  • 69_69.-openssl-非对称加密-api---读写秘钥.mp4
  • 70_70.-openssl-非对称加密-api---加解密和签名.mp4
  • 71_71.-非对称加密RSA类的封装---定义RSA类.mp4
  • 72_72.-非对称加密RSA类的封装---生成密钥对.mp4
  • 73_73.-非对称加密RSA类的封装---公钥加密和私钥解密.mp4
  • 74_74.-非对称加密RSA类的封装---签名和签名校验.mp4
  • 75_75.-非对称机密RSA类的封装---加载公钥或私钥到-EVP_PKEY-中.mp4
  • 76_76.-非对称加密RSA类的封装---类的API测试.mp4
  • 78_78.-openssl-中如何使用base64进行编解码.mp4
  • 79_79.-Base64类的封装.mp4
  • 80_80.-Base64类测试.mp4
  • 81_81.-把客户端的编解码类移植到服务器端.mp4
  • 82_82.-在服务器端对加密类进行重构.mp4
  • 83_83.-服务器端哈希类的封装-上.mp4
  • 84_84.-服务器端哈希类的封装-下.mp4
  • 85_85.-哈希类的bug修改.mp4
  • 86_86.-登录和注册细节剖析.mp4
  • 87_87.-在客户端添加用于通信的任务类.mp4
  • 88_88.-将客户端通信的任务对象添加到线程池.mp4
  • 89_89.-客户端登录和注册的数据处理.mp4
  • 90_90.-客户端代码bug修改.mp4
  • 91_91.-服务器端发送公钥的流程处理.mp4
  • 92_92.-服务器端程序bug的修改.mp4
  • 93_93.-连接客户端和服务器-上.mp4
  • 94_94.-连接客户端和服务器-下.mp4
  • 95_95.-对称加密的秘钥分发---上.mp4
  • 96_96.-对称加密的秘钥分发-下.mp4
  • 97_97.-通过可调用对象实现服务器端数据的发送.mp4
  • 98_98.-AES秘钥分发测试.mp4
  • 99_99.-添加AES对称加密处理.mp4
课程购买
课程价格
金币29
290金币限时优惠会员免费
销量:0
💎 开通会员每日免费下载,比单买更划算 →
支付成功后会自动显示下载资源云盘的链接!点击链接即可下载到本地。