#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();
}