sendFileBlock_V3

This commit is contained in:
2026-02-18 17:22:38 +03:00
parent 918d391a68
commit 52d077fe6b

View File

@@ -1,4 +1,5 @@
#include "Core/recognizesystem.h" #include "Core/recognizesystem.h"
#include <QMessageBox>
RecognizeSystem::RecognizeSystem(QObject *parent): RecognizeSystem::RecognizeSystem(QObject *parent):
QObject(parent), QObject(parent),
@@ -22,6 +23,8 @@ void RecognizeSystem::initialize(DataParser *dataParser, VersionContainer *versi
this->client = client; this->client = client;
} }
const int BLOCK_SIZE = 1024 * 1024; // Размер блока
void RecognizeSystem::recognize(QTcpSocket *socket) void RecognizeSystem::recognize(QTcpSocket *socket)
{ {
qDebug() << "RecognizeThreadId " << QThread::currentThreadId(); qDebug() << "RecognizeThreadId " << QThread::currentThreadId();
@@ -120,44 +123,67 @@ void RecognizeSystem::recognize(QTcpSocket *socket)
socket->waitForReadyRead(100); socket->waitForReadyRead(100);
} }
tmpBlock.clear();
sizeReceiveData = 0;
countSend = 0;
file.open(QFile::WriteOnly);
file.open(QFile::Append); if(! file.isOpen())
forever
{ {
stream.startTransaction(); int marker = 0;
stream >> tmpBlock; QMessageBox::critical(nullptr, "P31", "POINT 31");
}
if(! file.isWritable())
{
int marker = 0;
QMessageBox::critical(nullptr, "P32", "POINT 32");
}
if(!stream.commitTransaction()){ while(true)
{
socket->waitForReadyRead(10);
if(socket->state() == QAbstractSocket::UnconnectedState){ if(socket->bytesAvailable() <= 0)
postProcessorSystem->socketDisable();
//emit sigSocketDisabled();
return;
}
if(socket->waitForReadyRead(TCP_READ_TIMEOUT)){
continue; continue;
}
if(fileSize - sizeReceiveData >= BLOCK_SIZE)
tmpBlock = socket->read(BLOCK_SIZE);
else
tmpBlock = socket->read(fileSize - sizeReceiveData);
qint64 bytesReceived = tmpBlock.length();
if(bytesReceived <= 0)
continue; continue;
}
quint64 toFile = file.write(tmpBlock); sizeReceiveData += bytesReceived;
emit sigSendDebugLog(Tools::getTime() + "CLIENT: toFile :" + toFile);
sizeReceiveData += toFile;
countSend++; countSend++;
qint64 toFile = file.write(tmpBlock);
if(toFile <= 0)
{
//emit sigUpdateBytesAvailable();
QMessageBox::critical(nullptr, "P2", "POINT 33");
break;
}
tmpBlock.clear(); tmpBlock.clear();
if(sizeReceiveData == fileSize){ if(sizeReceiveData == fileSize)
{
emit sigSendDebugLog(Tools::getTime() + "FINAL Count send: " + QString::number(countSend)); emit sigSendDebugLog(Tools::getTime() + "FINAL Count send: " + QString::number(countSend));
emit sigSendDebugLog(Tools::getTime() + "FINAL Size received: " + QString::number(sizeReceiveData)); emit sigSendDebugLog(Tools::getTime() + "FINAL Size received: " + QString::number(sizeReceiveData));
emit sigSendDebugLog(Tools::getTime() + "FINAL File size" + QString::number(fileSize)); emit sigSendDebugLog(Tools::getTime() + "FINAL File size" + QString::number(fileSize));
emit sigUpdateBytesAvailable(); emit sigUpdateBytesAvailable();
break; break;
} }
else if(sizeReceiveData > fileSize)
{
int marker = 0;
QMessageBox::critical(nullptr, "P40", "POINT 34");
}
} }
file.close(); file.close();