From 2b656c29597e548894a5c94c145027f5e772b2f5 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Thu, 26 Feb 2026 17:59:17 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=B5?= =?UTF-8?q?=D1=82=20=D1=81=D0=BE=D0=BA=D0=B5=D1=82=20=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=B8=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LibServer/Systems/sendsystem.cpp | 34 ++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/LibServer/Systems/sendsystem.cpp b/LibServer/Systems/sendsystem.cpp index e67fd94..b7c66f9 100644 --- a/LibServer/Systems/sendsystem.cpp +++ b/LibServer/Systems/sendsystem.cpp @@ -364,8 +364,7 @@ void SendSystem::slot_sendFileBlock_forQtClient(QString path) void SendSystem::slot_sendFileBlockByteArray(QByteArray array, PacketType packetType) { - if(client->getClientType() == TypeClientAutorization::TYPE_QT_CLIENT || - client->getClientType() == TypeClientAutorization::TYPE_GUI) + if(client->getClientType() == TypeClientAutorization::TYPE_GUI) { QDataStream stream(socket); stream.setVersion(QDataStream::Qt_DefaultCompiledVersion); @@ -388,12 +387,43 @@ void SendSystem::slot_sendFileBlockByteArray(QByteArray array, PacketType packet { QByteArray chunk = array.mid(bytesSended, sendFileBlockSize); stream << chunk; + //bytesSended = socket->write(chunk); waitWrittenData("sendFileBlockByteArray"); bytesSended += chunk.length(); } } + else if(client->getClientType() == TypeClientAutorization::TYPE_QT_CLIENT) + { + QDataStream stream(socket); + stream.setVersion(QDataStream::Qt_DefaultCompiledVersion); + + qint64 size = array.size(); + qint64 bytesSended = 0; + + if (size == 0) + { + Logger::instance().log(" WARNING! Zero size ",LogLevel::ERROR); + return; + } + + stream << packetType; //Отправляем тип блока + stream << size; + + waitWrittenData("sendFileBlockByteArray"); + + while (bytesSended < size) + { + QByteArray chunk = array.mid(bytesSended, sendFileBlockSize); + //stream << chunk; + bytesSended = socket->write(chunk); + + waitWrittenData("sendFileBlockByteArray"); + + bytesSended += chunk.length(); + } + } else { slot_sendPacketType(packetType);