QT实现TCP文件传输

传输过程中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();
    }

            );

猜你喜欢

转载自blog.csdn.net/luoshiyong123/article/details/84839701