传输过程中TCP的使用见上一个帖子,介绍一下文件传输
//主要用到了以下头文件
#include <QFileDialog>
//该函数返回对话框下选择文件目录
QString filePath=QFileDialog::getOpenFileName(this,"open","../");
#include <QDebug>
用于排错
#include <QFileInfo>
QFileInfo info(filePath); //通过绝对路径或者相对路径获取文件信息
fileName=info.fileName();//获取文件大小和名字
fileSize=info.size();
#include <QFile> //文件类
QFile file;
file.setFileName(filePath); //通过绝对路径指定文件
需要注意的是,在文件传输的过程中,首先由服务器发送一个文件信息(文件大小和名字)给客户端,然后选择文件发送,但是头部和数据部分可能会出现连包问题,所以用了一个定时器,在头部信息发送后20ms再发送数据部分。
#include<QTimer>
//槽函数:
connect(&timer,&QTimer::timeout,
[=]()
{
//g关闭定时器
timer.stop();
//发送文件
sendDate();
}
);