I guess you need to create the QDataStream after filling str2recover.

Reason: At the time you currently create the datasteam in your sample, the byte array is empty and the stream will have status ReadPastEnd instead of Ok