Grazie per la risposta...
Comunque credo che le cose siano più complicate a causa di QT.
Se ricevessi 200/360 byte e poi i restanti 160 un nuovo evento readyRead partirebbe.
In ogni caso, un idea su come fare me la son fatta
codice:
private:
qint64 byteRead;
char buffer[360];
QTcpSocket *s;
// Connesso con il segnale readyRead di s
void read(){
qint64 len = s->read(&buffer[byteRead], 360-byteRead);
byteRead += len;
if(byteRead == 360) {
this->saveData();
byteRead=0;
}
}
Spero solo che i dati inviati non si "mescolino", viso che invio blocchi di 360byte ogni secondo.E' possibile che succeda questo?:
Server invia BLOCCO1(360)
Server invia BLOCCO2(360)
Client riceve BLOCCO1(200);
Client riceve BLOCCO2(200);
Client riceve BLOCCO1(160);
Clientriceve BLOCCO2(160);