file: get remote file success.

This commit is contained in:
2025-06-15 23:13:30 +08:00
parent 3538de7f4e
commit b36e645f87
10 changed files with 131 additions and 32 deletions

View File

@@ -40,6 +40,12 @@ QSharedPointer<FrameBuffer> Protocol::ParseBuffer(QByteArray& buffer)
stream.readRawData(fidBytes.data(), 32);
stream.readRawData(tidBytes.data(), 32);
auto b2id = [](const QByteArray& binary, int fixLen) {
const int nullPos = binary.indexOf('\0');
const int len = (nullPos >= 0) ? qMin(nullPos, fixLen) : fixLen;
return QString::fromUtf8(binary.constData(), len);
};
quint32 dataLen;
stream >> dataLen;
@@ -60,8 +66,8 @@ QSharedPointer<FrameBuffer> Protocol::ParseBuffer(QByteArray& buffer)
}
auto frame = QSharedPointer<FrameBuffer>::create();
frame->type = type;
frame->fid = QString::fromUtf8(fidBytes).trimmed();
frame->tid = QString::fromUtf8(tidBytes).trimmed();
frame->fid = b2id(fidBytes, 32);
frame->tid = b2id(tidBytes, 32);
frame->data = data;
buffer.remove(0, headerPos + totalFrameSize);
return frame;
@@ -74,7 +80,7 @@ QByteArray Protocol::PackBuffer(const QSharedPointer<FrameBuffer>& frame)
if (frame.isNull()) {
return QByteArray();
}
}
QByteArray packet;
QDataStream stream(&packet, QIODevice::WriteOnly);