#include "download.h" void Download::run() { QTcpServer server; QHostAddress addr=QHostAddress::LocalHost; server.listen(addr,port); QUdpSocket request; QByteArray arr; QDataStream input(&arr,QIODevice::WriteOnly); input<waitForReadyRead(100);//??? QDataStream info(socket); qint64 size,cur=0; QString name; info>>size>>name; emit refreshFileName(name); QFile file("../"+name); file.open(QFile::WriteOnly); while(curwaitForReadyRead(100);//??? QByteArray arr=socket->readAll(); cur+=arr.size(); file.write(arr); emit refreshProgressBar(100.*cur/size); } file.close(); avaliable=true; socket->close(); }