实现主要功能:

1.扫描局域网客户端

2.连续传输文件与目录

3.传输结束自动执行程序

4.显示进度与状态

老版本源代码:https://blog.csdn.net/autumoonchina/article/details/110392800

新版本界面:

新版本接口文件:

//author:autumoon
//联系QQ:4589968
//日期:2020-12-29
#ifndef TASKSINTERFACE_H
#define TASKSINTERFACE_H#include <QObject>
#include <string>
#include <vector>// Qt lib import
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QMutex>using namespace std;typedef struct _ClinetInfo
{string strIp;string strDemPath;string strDomPath;string strSrcPath;string strRootPath;string strProgramPath;string strProgressTxtPath;
}ClientInfo;class TasksInterface : public QObject
{Q_OBJECT
public:explicit TasksInterface(QObject *parent = nullptr);//初始化命令端口和上传端口void Initialize(const qint16& nCmdPort = 9998, const qint16& nUploadPort = 9999){m_nCmdPort = nCmdPort; m_nUploadPort = nUploadPort;}//发送命令到客户机void SendCommand(string strIp, string strCommand, string strParameter);void SendDownloadList(string strIp, vector<string>& vSrcFiles, vector<string>& vDstFiles);//发送单个文件到客户机int SendData(string strMasterFullPath, string strIp, string strClientFullPath);//发送多个文件到客户机int SendData(const vector<string>& vMasterFullPaths, string strIp, const vector<string>& vClientFullPaths);//发送任务int SendTasks(const std::vector<ClientInfo>& vClinets, string strPath, int nMethod);//判断目标机器是否存在指定的进程 -1不存在 0未知 1存在static int CheckClientProcess(string strHost, string strProcessName, bool bKillIfExists = false);//查询目标机器的处理进度,返回进度值0-100static int CheckClientProgress(string strHost, string strProgressFilePathName, string& strInfo);//初始化目标机器的进度文件static int InitializeClientProgress(string strHost, string strProgressFilePathName);signals:void progress(qint64, qint64);void finished(bool, const QString&);//传输单个文件对应的信号void progress_file(qint64, qint64);void finished_file(bool, const QString&);//某个主机的传输进度void host_progress(qint64, qint64, const QString&);private slots:void checkCommandResult(QNetworkReply *reply);void sendDownloadListOver();int runCmdAfterFinished(bool bSuccess, const QString& strHost);private://发送任务,TCP直接传输int SendTasks(const std::vector<ClientInfo>& vClinets);//发送单个目录,保持目录结构,TCP直接传输int SendLocalDir(const std::vector<ClientInfo>& vClinets, string strLocalPath);//本机作为服务器的方式发送任务,strRootDir为服务器根目录int SendTasks(const std::vector<ClientInfo>& vClinets, string strRootDir);static int parseReplyData(QNetworkReply* reply, QByteArray& data);static void setRequestHeader(QNetworkRequest &request){request.setRawHeader("Content-Type", "charset='utf-8'");request.setRawHeader("Content-Type", "application/json");}//获取本机IP地址QHostAddress getLocalHostIP();string localPath2WebUrl(const string& strLocalPath, const string& strLocalRootDir);void sleep(int msec = 5000);private:quint16 m_nCmdPort;quint16 m_nUploadPort;//传输多个文件,失败重传bool m_bSuccess;int m_nProgress;QMutex m_mProgress;vector<ClientInfo> m_vClinets;
};#endif // TASKSINTERFACE_H

新版本主要为美化,顺便实现了分机进度显示。

源代码由于项目问题暂时无法公开,需要帮助可以与我取得联系。

基于QT的局域网文件传输系统相关推荐

  1. 基于Qt的实时温度传输系统

    基于Qt的实时温度传输系统 引言 上位机设计 头文件 ui界面设计 初始化工作 串口功能设计 表格插入数据 保存表格数据 清空表格数据 开始绘图 暂停绘图 绘图设计 导出温度变化图 定时器 下位机设计 ...

  2. 标准c语言局域网文件传输,winsocket局域网文件传输系统源代码(C语言)+winsocket.doc...

    winsocket局域网文件传输系统源代码(C语言)winsocket 翁跺吨郑蛮杨消痴线豆电眩也行却猖革甥花顶豹扣损纽眺福圈汀森饮翁篮玉鳃将汇铆梗敬剑砷香祝景驰疆赋恢爽宛关唾上盼唁墒酗箭抒厚檬毅袭眉 ...

  3. 基于socket的简单文件传输系统

    [实验目的及要求] 在 Uinx/Linux/Windows 环境下通过 socket 方式实现一个基于 Client/Server 文件传输程序. [实验原理和步骤] 1. 确定传输模式:通过 so ...

  4. qt中socket通信流程图_基于Qt的局域网通信设计说明书.doc

    文档控制记录 序号版本日期修改内容修改人审批人1V1.02017-04-24创建2 目录目录4 辅助功能设计14 1目的 本文主要介绍利用Qt实现局域网通信的主要实现流程和一些技术知识点的设计说明. ...

  5. 基于Qt的局域网即时通信系统设计与实现(提供各种版本的源代码)

    我创建了一个QQ群,有问题的话,可以直接加群:530240681. github上项目的链接:https://github.com/siyueshiqi/LAN_IM 本系统主要实现了注册登录.好友管 ...

  6. 标准c语言局域网文件传输,winsocket局域网文件传输系统源代码(C语言)+winsocket

    f67 #include #include #include #include #include #include #pragma comment(lib,"Ws2_32") #d ...

  7. linux tcp文件分包_在Linux下基于TCP协议的文件传输程序.

    [设计目的] 通过 Linux C 编程,设计一个基于 TCP/IP 的文件传输系统,实现网络文件的收发 [设计环境] Ubuntu 12.04 [设计方案] ( 1 )文件读写 任意文件都可以二进制 ...

  8. 基于Qt的类似QQ好友列表抽屉效果的实现

    转载地址: http://blog.csdn.net/shuideyidi/article/details/30619167 前段时间在忙毕业设计,所以一直没有更新博客.今天答辩完以后,将对我的毕业设 ...

  9. 基于QT的【第一个项目】设计+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作

    基于QT的第一个项目+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作 第一阶段 网络编程局域网TCP/IP聊天QT实现 main.c ma ...

最新文章

  1. opencv 高斯模糊
  2. 未来的计算机作文2000字,未来的模样2000字作文
  3. 安装python环境及pip_Python环境搭建及pip的使用
  4. jzoj 6302. 提高组
  5. 我的blog开张了,希望大家能多多赏光啊
  6. 使用三级缓存解决内存溢出
  7. 应该怎么样学习前端呢?
  8. 第二个案例实操——创建Bean类
  9. .Net Core[译文]
  10. DEM数据(12米)精度获取方法
  11. 优酷mac版视频怎么转码,如何将kux格式转成mp4格式
  12. Pytorch深度学习实战教程(四):必知必会的炼丹法宝
  13. 最新数据库驱动包下载(完整版)
  14. 计算机没有管理无线网络,电脑连接无线网络时,提示你没有首选无线网络怎么办...
  15. 不需编程也可实现钉钉自动打卡
  16. java代码获取银行实时汇率
  17. 【初码干货】使用阿里云开放搜索服务快速搭建资源搜索网站
  18. 如何独立设置Mac触摸板方向和鼠标滚轮方向
  19. Java中数组的遍历
  20. 解决win10应用崩溃的办法(大部分情况适用)

热门文章

  1. 微信登录实现-Android
  2. LTE CSFB测试分析
  3. [nodejs,expressjs,angularjs2] LOL英雄列表数据抓取及查询显示应用
  4. 机器学习 深度学习 神经网络 图像处理优质博客整理
  5. html注册登录接口,API注册
  6. 云数据库 Redis 版连接数据库-DMS登录云数据库
  7. float 或者 flex 换行(打工人的愤怒)
  8. 视频质量感知评价指标
  9. 数据分析之描述性统计
  10. c语言计算循环卷积,循环卷积和离散卷积的计算机计算.DOC