QT 自定义协议TCP传输文件

后面附带实例的下载地址

一、将文件看做是由:文件头+文件内容组成,其中文件头包含文件的一些信息:文件名称、文件大小等。

二、文件头单独发送,文件内容切块发送。

三、每次发送信息格式:发送内容大小、发送内容类型(文件头或是文件块内容)、文件块内容。

四、效果展示:

五、主要代码块:

发送端:

void zzcClient::sendHeader()
{
    QString fName = QDir(mFile->fileName()).dirName();
    QJsonObject obj( QJsonObject::fromVariantMap({
                                                     {"name", fName},
                                                     {"size", mFileSize}
                                                 }));

    QByteArray headerData( QJsonDocument(obj).toJson() );

    writePacket(headerData.size(), PacketType::Header, headerData);
}

void zzcClient::sendData()
{
    if (!mBytesRemaining)
        retu

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/653869.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【香橙派 AIpro】OrangePi AIpro :教育、机器人、无人机领域的超级AI大脑,华为昇腾处理器驱动的AI开发板新标杆

【OrangePi AIpro:教育、机器人、无人机领域的超级AI大脑,华为昇腾处理器驱动的AI开发板新标杆】 文章目录 一、开箱与初印象1. 初印象2. 上手开机3. 安装和运行 TightVNC 远程桌面3.1. 安装 TightVNC 服务器3.2. 启动 VNC 服务器3.3. 在 Windows 上使用…

clickhouse 特性——clickhouse 基础篇(一)

文章目录 列式存储向量化查询执行引擎数据压缩使用磁盘支持SQL实时数据更新 列式存储 列式存储的目的有两个,一是缩小数据扫描范围,二是减少数据传输大小, 因此列存储和数据压缩通常是伴生的,列存储是数据压缩的前提。列存储的好…

MySQL测试数据

012熟悉测试数据 查看表结构:desc或describe,语法格式:desc或describe 表名 desc dept;查询部门的所有信息 : select * from dept;013查一个字段 语法格式:select 字段名 from 表名;(大小写都可以&…

SpringBoot——基于Spring Task实现定时任务

目录 定时任务 项目总结 新建一个SpringBoot项目 pom.xml无需引入依赖 SpringTaskDemo SpringbootSpringtaskApplication启动类 定时任务 在日常的项目开发中,往往会涉及一些需要做到定时执行的代码,例如自动将超过24小时的未付款的订单改为取消状…

finetuning大模型准备(基于Mac环境)

为finetuning进行的热身准备,涉及周边的软件工具,方法。 问题1:finetuning过程较长,采用系统自带命令行没有后台,前台被杀后,容易造成训练失败。 解决方法: tmux可以开启后台训练 问题2&…

地下停车场FM信号覆盖系统技术原理用与应用

随着我国城市化水平的快速推进与房地产的快速发展,城市停车场称为每栋建筑物的硬性配套建筑,尤其是商业综合体、医院、政府机关、机场、高铁站等场所出现了超大规模停车场,停放车辆可达数千辆,停车场的智能化与信息化水平也越来越…

echarts-事件

echarts部分事件 添加点击事件 添加点击事件: let options {tooltip: {},xAxis: {type: "category",data: ["d1", "d2", "d3", "d4"],},yAxis: {},series: [{type: "line",data: d1,},{type: &qu…

推送镜像到私有harbor仓库

本地已制作镜像:tomcat-8.5.100-centos7.9:1.0。 本地已经搭建私有仓库:harbor.igmwx.com。 现在需要把镜像 tomcat-8.5.100-centos7.9:1.0 推送到harbor。 (1)查看本地镜像:sudo docker images zhangzkzhangzk:~/d…

Java Object类方法介绍

Object作为顶级类,所有的类都实现了该类的方法,包括数组。 查询Java文档: 1、object.eauqls(): 其作用与 有些类似。 : 是一个比较运算符,而不是一个方法。 ①可以判断基本类型,也可以判断引用类型。 ②若…

黑马python-面向对象程序设计

1.定义类 class 类名: 代码 ….. 注意:类名要满足标识符命名规则,同时遵循大驼峰命名习惯 2.self: self指调用该函数的对象 3.创建对象 对象名类() 4.添加获取对象属性 对象名.属性名值 5._init_()方法&…

vs2010特殊字符‘’无法显示

记录一下,某天测试组的同事突然发了个邮件,说显示有问题 一看邮件内容,果然出bug了 修改办法如下: 把资源文件中的‘&’改成‘&&’,这样在使用的时候就能用了 成功

@RequestBody注解

文章目录 RequestBody注解基本概念在postman里如何发送接收端带有RequestBody的请求? RequestBody注解 基本概念 扩展: http报文会包含四部分,第一部分是请求行,第二部分是请求头,第三部分是空行,第四部分…

基于英飞凌BGT60LTR11AIP E6327芯片具低功耗的脉冲多普勒操作模式常用于汽车应用的雷达上

芯片特征: 60 GHz收发器MMIC,带一个发射器和一个接收器单元封装天线(AIP)(6.73.30.56 mm3)低功耗的脉冲多普勒操作模式自主模式用于运动和运动方向的集成检测器运动检测信号的直接输出目标检测范围的15个可配置阈值检测…

富港银行 邀请码 兑换码 优惠码 分享

首次记得一定要扫码注册,扫码注册开户费50美金,每笔26美金手续费,目前能接收CBI银行资金的有:工行、交通、中行,请知悉 cbi帐户管理费:10美元/月,余额>500美元,1美元/月/&#x…

李廉洋:5.29黄金原油持续震荡,今日美盘行情走势分析及策略。

黄金消息面分析:美联储理事鲍曼周二表示,她支持要么先等等再开始放缓缩减资产负债表,要么采取比本月早些时候宣布的更温和的放慢缩表进程。鲍曼认为商业银行准备金水平仍然充足,这让官员们有更多时间来推进缩表进程。“在准备金接…

FJSP:粒子群优化算法PSO求解柔性作业车间调度问题(FJSP),提供MATLAB代码

一、柔性作业车间调度问题 柔性作业车间调度问题(Flexible Job Shop Scheduling Problem,FJSP),是一种经典的组合优化问题。在FJSP问题中,有多个作业需要在多个机器上进行加工,每个作业由一系列工序组成&a…

电商API接口||电商数据连接器:一键连接,效率加倍!

电商数据API接口: 一键连接,效率加倍! 打造智能数据生态,让数据流动更加高效 在数字化时代,数据已成为企业发展的核心驱动力。电商API数据采集接口,助力电商企业实现数据的高效管理和应用。 电商数据API…

浅说线性DP(上)

前言 在说线性dp之前,我们先来聊一聊动态规划是啥? 动态规划到底是啥? 动态规划是普及组内容中最难的一个部分,也是每年几乎必考的内容。它对思维的要求极高,它和图论、数据结构不同的地方在于它没有一个标准的数学…

IPC$横向移动

一. IPC$介绍和连接方式 1. IPC$介绍 IPC( Internet Process Connection)共享,是为了实现进程间通信而开放的命名管道。IPC可以通过验证用户名和密码获得相应的权限,通常在远程管理计算机和查看计算机的共享资源时使用。通过ipc$,可以与目标机器建立连接。利用这个…

项目开发-若依框架

文章目录 框架下载及运行项目学习需求修改左侧菜单栏增加标签-项目信息搭建过程问题解决 后续需要看的内容 框架下载及运行 下载安装: https://blog.csdn.net/anxiaoxiao61/article/details/122505963 https://blog.csdn.net/m0_67376124/article/details/12761749…