bugfix: sent packetType

This commit is contained in:
semenov
2025-06-27 12:42:29 +03:00
parent ce78420a07
commit c254900cb8
4 changed files with 95 additions and 34 deletions

View File

@@ -92,21 +92,33 @@ void SendSystem::sendFileBlockByteArray(QByteArray array, PacketType packetType)
{
qDebug() << "sendFileBlockByteArray thread: " << QThread::currentThreadId();
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
if(!client->getIsUnity())
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
fileSize = array.size();
fileSize = array.size();
if(fileSize == 0){
emit sigSendToLogger(Tools::getTime() + " WARNING! Zero size ");
return;
}
if(fileSize == 0){
emit sigSendToLogger(Tools::getTime() + " WARNING! Zero size ");
return;
}
stream << packetType; //Отправляем тип блока
stream << packetType; //Отправляем тип блока
stream << fileSize;
stream << array;
}
else
{
sendPacketType(packetType);
QByteArray message;
int size = array.length();
message.append(reinterpret_cast<char*>(&size), sizeof(int));
socket->write(message);
socket->write(array);
}
stream << fileSize;
stream << array;
}
void SendSystem::sendVersion()
@@ -187,10 +199,21 @@ void SendSystem::sendDeleteBlock(QString path)
void SendSystem::sendPacketType(PacketType packetType)
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
stream << packetType;
socket->waitForReadyRead(100);
if(!client->getIsUnity())
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
stream << packetType;
socket->waitForReadyRead(100);
}
else
{
QByteArray message;
int type = (int)packetType;
message.append(reinterpret_cast<char*>(&type), sizeof(int));
socket->write(message);
}
}
void SendSystem::sendHello()
@@ -219,26 +242,12 @@ void SendSystem::sendXmlAnswer(QByteArray array, PacketType packetType)
}
else
{
//QByteArray buffer(512,0);
sendPacketType(packetType);
QByteArray message;
message.append("size=");
int size = array.length();
message.append(reinterpret_cast<char*>(&size), sizeof(int));
qDebug() << "Message size " << message.length();
qDebug() << array.length();
socket->write(message);
if(array.length() <= 512)
{
// QByteArray buffer2(512,0);
// memcpy(buffer2.data(),array.data(),array.length());
socket->write(array);
}
else
{
socket->write(array);
}
socket->write(array);
}
}