当前位置: 首页 > news >正文

C++项目——云备份-⑨-服务端与客户端功能联调

文章目录

  • 专栏导读
  • 1.服务端源代码
  • 2.客户端源代码
  • 3.浏览器访问测试
      • /
      • /listshow
  • 4.上传文件测试
  • 5.文件下载测试

专栏导读

🌸作者简介:花想云 ,在读本科生一枚,C/C++领域新星创作者,新星计划导师,阿里云专家博主,CSDN内容合伙人…致力于 C/C++、Linux 学习。

🌸专栏简介:本文收录于 C++项目——云备份

🌸相关专栏推荐:C语言初阶系列C语言进阶系列C++系列数据结构与算法Linux
🌸项目Gitee链接:https://gitee.com/li-yuanjiu/cloud-backup

在这里插入图片描述

服务端与客户端搭建好之后,我们对其做简单的测试。

1.服务端源代码

// server.cpp
#include "util.hpp"
#include "config.hpp"
#include "data.hpp"
#include "hot.hpp"
#include "service.hpp"
int main(int argc, char* argv[])
{_data = new cloud::DataManager();cloud::Service server;server.RunModule();return 0;
}
  • 编译源文件,生成可执行程序
$ g++ -o server.cpp server.cpp  -std=c++14 -lpthread -lstdc++fs -ljsoncpp -lbundle
  • 启动服务端程序
$ ./server

2.客户端源代码

// client.cpp
#define _CRT_SECURE_NO_DEPRECATE 1
#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING 
#include "util.hpp"
#include "data.hpp"
#include "cloud.hpp"
#define BACKUP_FILE "./backup.dat"
#define BACKUP_DIR "./backup/"void fileutilTest()
{cloud::FileUtil fu(BACKUP_DIR);std::vector<std::string> v;fu.ScanDirectory(&v);for (auto a : v){std::cout << a << std::endl;}
}
int main()
{cloud::Backup backup(BACKUP_DIR, BACKUP_FILE);backup.RunMoudle();//fileutilTest();return 0;
}- 编译源文件,生成可执行程序```bash
$ g++ -o client client.cpp  -std=c++14 -lpthread -lstdc++fs -ljsoncpp -lbundle
  • 启动客户端程序
$ ./client

3.浏览器访问测试

/

  • (未上传文件时)
    在这里插入图片描述

/listshow

  • (未上传文件时)
    在这里插入图片描述

4.上传文件测试

  • 进入backup目录(与client.cpp在同一路径下);
    在这里插入图片描述
  • 在该目录下新增文件;

在这里插入图片描述

  • 再次使用浏览器发送备份文件列表展示请求;

在这里插入图片描述

  • 查看备份目录与压缩(cloud.cpp已经被识别为非热点文件,被压缩存储);
    在这里插入图片描述

5.文件下载测试

  • 点击备份文件显示列表中的文件,即可完成下载功能。

在这里插入图片描述

  • 检测与源文件是否一致(使用md5工具)。
> certutil -hashfile 文件名 MD5

在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/212279.html

相关文章:

  • Linux两条服务器实现相互免密登录
  • 华纳云Ubuntu环境怎么编译安装PHP和Nginx
  • Ubuntu 23.10(Mantic Minotaur)正式发布,支持Linux 6.5和GNOME 45
  • Linux:KVM虚拟化
  • HTML标签,列表,表格相关
  • 【音视频】Linux | FFmpeg源码搭建
  • Ansible中常用模块
  • 2000-2021年上市公司产融结合度量数据
  • 2023最新最全Web自动化测试面试题
  • List的add(int index,E element)陷阱,不得不防
  • 如何使用drawio画流程图以及导入导出
  • 腾讯云轻量服务器“镜像类型”以及“镜像”选择方法
  • docker-compose 简单部署Flask + Redis + Nginx环境搭建网站
  • debian和ubuntu
  • 恒驰服务 | 华为云数据使能专家服务offering之数仓建设
  • AI与Prompt:解锁软件开发团队的魔法咒语,在复杂任务上生成正确率更高的代码
  • 深度学习02-数据集格式转换
  • 【c++|opencv】一、基础操作---1.图像读取
  • 【2023.10.30练习】C语言-循环右移字符
  • C++ 自引用指针this(整理)
  • pyzed.sl 突然 ImportError: DLL load failed while importing sl: 找不到指定的程序。 的解决
  • STM32 Cube配置RS485 Modbus
  • global,nonlocal
  • HTML5教程
  • vulnhub momentum 靶机复盘
  • c++和java实现策略模式的差异
  • vim
  • AcWing93. 递归实现组合型枚举:输出从1~n中随机选出的m个整数
  • Java修仙传之Flink篇
  • 网络新闻发稿为何经久不衰?