# 人人网盘 **Repository Path**: king799/renren-network-disk ## Basic Information - **Project Name**: 人人网盘 - **Description**: 人人网盘项目,包含私聊、群聊、上传、下载、分享、文件操作 - **Primary Language**: C++ - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 0 - **Created**: 2022-08-27 - **Last Updated**: 2023-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 人人网盘 ## 一、环境 - Qt5.9.3_32bit - SQLite3 - C++11 ## 二、安装教程 ### SQLite配置: #### 1、sqlite3下载 [SQLite Download Page](https://www.sqlite.org/download.html);也可以用已经下载好的安装包 #### 2、sqlite3环境配置 ![image-20220829202706833](README.assets/image-20220829202706833.png) #### 3、创建SQLite数据库 ```c //打开windows窗口输入下列代码,前提是SQLite加入了环境变量 //在该路径下会产生一个cloud.db的数据库文件 sqlite ./cloud.db ``` #### 4、创建表 ![image-20220827194628270](README.assets/image-20220827194628270.png) ### 配置文件: client.config和server.config ```c++ //将服务器的IP和PORT信息填入配置文件中 //将配置文件作为资源文件添加到资源文件中 //程序运行时加载配置文件中的数据 127.0.0.1 //可以直接修改为你自己的IP地址 8888 ``` ### QT网络连接模块 ```c QT += core gui network 头文件:#include ``` ## 三、模块化设计 ### 1、TCP网络连接模块 #### 客户端连接服务器 ![image-20220829212501809](README.assets/image-20220829212501809.png) #### 服务器连接客户端 ![image-20220827195943878](README.assets/image-20220827195943878.png) ### 2、通讯协议设计 ```c //1、弹性结构体:通讯协议 struct PDU { uint uiPDULen; //总的协议数据单元大小 uint uiMsgType; //消息类型 char caData[64]; //文件名 uint uiMsgLen; //实际消息长度 int caMsg[]; //实际消息 }; //实际消息是一个弹性数组,可以任意改大小 //2、消息类型uiMsgType enum ENUM_MSG_TYPE { ENUM_MSG_TYPE_MIN=0, //枚举以0为开头,后续增长1 ENUM_MSG_TYPE_REGIST_REQUEST, //注册请求 ENUM_MSG_TYPE_REGIST_RESPOND, //注册回复 ENUM_MSG_TYPE_LOGIN_REQUEST, //登录请求 ENUM_MSG_TYPE_LOGIN_RESPOND, //登录回复 ENUM_MSG_TYPE_ALL_ONLINE_REQUEST, //在线用户请求 ENUM_MSG_TYPE_ALL_ONLINE_RESPOND, //在线用户回复 ENUM_MSG_TYPE_SEARCH_USR_REQUEST, //搜索用户请求 ENUM_MSG_TYPE_SEARCH_USR_RESPOND, //搜索用户回复 ENUM_MSG_TYPE_ADD_FRIEND_REQUEST, //添加好友请求 ENUM_MSG_TYPE_ADD_FRIEND_RESPOND, //添加好友回复 ENUM_MSG_TYPE_ADD_FRIEND_AGGREE, //同意添加好友 ENUM_MSG_TYPE_ADD_FRIEND_REFUSE, //拒绝添加好友 ENUM_MSG_TYPE_FLUSH_FRIEND_REQUEST,//刷新好友请求 ENUM_MSG_TYPE_FLUSH_FRIEND_RESPOND,//刷新好友回复 ENUM_MSG_TYPE_DELETE_FRIEND_REQUEST,//删除好友请求 ENUM_MSG_TYPE_DELETE_FRIEND_RESPOND,//删除好友回复 ENUM_MSG_TYPE_PRIVATE_CHAT_REQUEST,//私聊请求 ENUM_MSG_TYPE_PRIVATE_CHAT_RESPOND,//私聊回复 ENUM_MSG_TYPE_GROUP_CHAT_REQUEST,//群聊请求 ENUM_MSG_TYPE_GROUP_CHAT_RESPOND,//群聊回复 ENUM_MSG_TYPE_CREATE_DIR_REQUEST, //创建文件夹请求 ENUM_MSG_TYPE_CREATE_DIR_RESPOND, //创建文件夹回复 ENUM_MSG_TYPE_FLUSH_FILE_REQUEST, //刷新文件请求 ENUM_MSG_TYPE_FLUSH_FILE_RESPOND, //刷新文件回复 ENUM_MSG_TYPE_DEL_DIR_REQUEST, //删除目录请求 ENUM_MSG_TYPE_DEL_DIR_RESPOND, //删除目录回复 ENUM_MSG_TYPE_RENAME_FILE_REQUEST, //重命名文件请求 ENUM_MSG_TYPE_RENAME_FILE_RESPOND, //重命名文件回复 ENUM_MSG_TYPE_ENTER_DIR_REQUEST, //进入文件夹请求 ENUM_MSG_TYPE_ENTER_DIR_RESPOND, //进入文件夹回复 ENUM_MSG_TYPE_DEL_FILE_REQUEST, //删除常规文件请求 ENUM_MSG_TYPE_DEL_FILE_RESPOND, //删除常规文件回复 ENUM_MSG_TYPE_UPLOAD_FILE_REQUEST, //上传文件请求 ENUM_MSG_TYPE_UPLOAD_FILE_RESPOND, //上传文件回复 ENUM_MSG_TYPE_DOWNLOAD_FILE_REQUEST, //下载文件请求 ENUM_MSG_TYPE_DOWNLOAD_FILE_RESPOND, //下载文件回复 ENUM_MSG_TYPE_SHARE_FILE_REQUEST, //共享文件请求 ENUM_MSG_TYPE_SHARE_FILE_RESPOND, //共享文件回复 ENUM_MSG_TYPE_SHARE_FILE_NOTE, ENUM_MSG_TYPE_SHARE_FILE_NOTE_RESPOND, ENUM_MSG_TYPE_MOVE_FILE_REQUEST, //移动文件请求 ENUM_MSG_TYPE_MOVE_FILE_RESPOND, //移动文件回复 ENUM_MSG_TYPE_MAX=0x00ffffff }; ``` ### 3、登录注册退出注销 ![image-20220828143616632](README.assets/image-20220828143616632.png) ### 4、用户模块 #### 查看在线用户 ![image-20220829221104905](README.assets/image-20220829221104905.png) #### 搜索用户 ![image-20220829221134271](README.assets/image-20220829221134271.png) #### 添加好友 ![image-20220829221157539](README.assets/image-20220829221157539.png) #### 刷新好友列表 ![image-20220829221230073](README.assets/image-20220829221230073.png) #### 删除好友 ![image-20220829221258726](README.assets/image-20220829221258726.png) ### 5、聊天模块 #### 私聊 ![image-20220829221333465](README.assets/image-20220829221333465.png) #### 群聊 ![image-20220829221404273](README.assets/image-20220829221404273.png) ### 6、文件模块 #### 创建文件夹 ![image-20220829221455968](README.assets/image-20220829221455968.png) #### 查看所有文件 ![image-20220829221606353](README.assets/image-20220829221606353.png) #### 删除文件夹 ![image-20220829221631345](README.assets/image-20220829221631345.png) #### 重命名文件夹 ![image-20220829221652278](README.assets/image-20220829221652278.png) #### 进入文件夹 ![image-20220829221714757](README.assets/image-20220829221714757.png) #### 返回上一级 ![image-20220829221738615](README.assets/image-20220829221738615.png) #### 删除常规文件 ![image-20220829222030250](README.assets/image-20220829222030250.png) #### 移动文件 ![image-20220829222232052](README.assets/image-20220829222232052.png) ### 7、上传下载分享模块 #### 上传文件 ![image-20220829222102719](README.assets/image-20220829222102719.png) #### 下载文件 ![image-20220829222133533](README.assets/image-20220829222133533.png) #### 分享文件 ![image-20220829222204928](README.assets/image-20220829222204928.png)