1 Star 8 Fork 0

石先森很疯狂 / 人人网盘

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 5.97 KB
一键复制 编辑 原始数据 按行查看 历史

人人网盘

一、环境

  • Qt5.9.3_32bit
  • SQLite3
  • C++11

二、安装教程

SQLite配置:

1、sqlite3下载

SQLite Download Page;也可以用已经下载好的安装包

2、sqlite3环境配置

image-20220829202706833

3、创建SQLite数据库

//打开windows窗口输入下列代码,前提是SQLite加入了环境变量
//在该路径下会产生一个cloud.db的数据库文件
sqlite ./cloud.db

4、创建表

image-20220827194628270

配置文件:

client.config和server.config

//将服务器的IP和PORT信息填入配置文件中
//将配置文件作为资源文件添加到资源文件中
//程序运行时加载配置文件中的数据
127.0.0.1    //可以直接修改为你自己的IP地址
8888

QT网络连接模块

QT       += core gui network
头文件:#include<QTcpSocket>

三、模块化设计

1、TCP网络连接模块

客户端连接服务器

image-20220829212501809

服务器连接客户端

image-20220827195943878

2、通讯协议设计

//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

4、用户模块

查看在线用户

image-20220829221104905

搜索用户

image-20220829221134271

添加好友

image-20220829221157539

刷新好友列表

image-20220829221230073

删除好友

image-20220829221258726

5、聊天模块

私聊

image-20220829221333465

群聊

image-20220829221404273

6、文件模块

创建文件夹

image-20220829221455968

查看所有文件

image-20220829221606353

删除文件夹

image-20220829221631345

重命名文件夹

image-20220829221652278

进入文件夹

image-20220829221714757

返回上一级

image-20220829221738615

删除常规文件

image-20220829222030250

移动文件

image-20220829222232052

7、上传下载分享模块

上传文件

image-20220829222102719

下载文件

image-20220829222133533

分享文件

image-20220829222204928

C++
1
https://gitee.com/king799/renren-network-disk.git
git@gitee.com:king799/renren-network-disk.git
king799
renren-network-disk
人人网盘
master

搜索帮助