Читаю с графический файла типа .bmp
на клиенте и передаю на сервер
C++ (Qt)
if(file.open(QFile::ReadWrite)){
file.seek(0);
while(!file.atEnd())
{
const QByteArray buf = file.read(MAX_SIZE_FRAME);
head_pack headPack;
headPack.sizePack = buf.size();
headPack.typePack = TYPE_DATA_FILE;
headPack.sizePack2 = buf.size();
QByteArray ba;
ba.append((char *)(&headPack),sizeof(headPack));
ba.append(buf);
m_pTcpSocket->write(ba);
m_pTcpSocket->waitForBytesWritten(1);
}
читаю передаваемые посылки на сервере и пишу в файл-копию
C++ (Qt)
...
file.setFileName("COPY");
if(file.open(QIODevice::ReadWrite)){
blockSize += file.write(&pData.data()[0],headPack.sizePack);
file.close();
}
текстовый файл передается нормально, открываю и текст совпадает с исходником.
А вот если передаю файл с изображением, то он даже не хочет его в Paint открывать,
выдает ошибку что типа что файл не является правильным точечным рисунком.
Открывал переданный файл там вроде якобы не хватает заголовка.
Но я передавал же файл побайтно и в конце значение записанных байт в файл и размер файла источника совпадают.
Подскажите как решить проблему?