Well, I couldn't find anything.
I modified the samples and attached them. Here the server sends the file. I used an 8.42mb file and a 15.6mb one, and I couldn't reproduce the problem.
You can test on your side.
The send/receive methods are similar to yours. I also used QDataStream's.
Everything happens in Client::readFortune(receive file) and in FortuneThread::run( sends the file).
The file name is hardcoded, so you might want to modify that.
Regards
Bookmarks