culturered_client/PhotoDisplay/FileReceiver.cpp

34 lines
764 B
C++
Raw Permalink Normal View History

2024-09-07 03:34:44 +00:00
#include "FileReceiver.h"
#include <QFile>
FileReceiver::FileReceiver(QTcpSocket* tcp, QObject* parent) : QThread(parent) {
m_tcp = tcp;
}
void FileReceiver::run() {
QFile* file = new QFile("recv.txt");
file->open(QFile::WriteOnly);
connect(m_tcp, &QTcpSocket::readyRead, this, [=]() {
static int count = 0;
static int total = 0;
if (count == 0) {
m_tcp->read((char*)&total, 4);
}
QByteArray all = m_tcp->readAll();
count += all.size();
file->write(all);
if (count == total) {
m_tcp->close();
m_tcp->deleteLater();
file->close();
file->deleteLater();
emit Finish();
}
});
exec();
}