Как читать с сокета данные без QDataStream (который используется во всех примерах).Есть сервер (написан на нативных сокетах под QNX), пишу клиент под Win/Lin под Qt.Нужно получать с сервера пакеты (пакеты могут иметь разную длину).Пакет представляет из себя несколько массивов собранных в кучу друг за другом (типы quin32, структуры и т.п.).при сигнале readyRead() получаю только часть данных (меньше чем нужно в bytesAvailable()).при socket->read() я так понимаю внутренний буфер очищается на колчиество считанных байт.Как грамотно реализовать чтение?я пока делаю так:Код:void QClient::readyRead(){ int readBytes = fsocket->bytesAvailable(); if(readBytesread((char*)frawBuffer,sizeo f(scb_msg_t)); if(fframeBuffer.msg_head->size) { freadBytes = 0; while((readBytes = fsocket->bytesAvailable())!=0) { fsocket->read((char*)frawBuffer[freadBytes],readBytes); freadBytes+=readBytes; } }...}
|