我的发送文件数据格式为:
总长度 文件名长度    文件名               文件数据
64位    64位     由文件名长度决定
发送端:
void Dialog::updateClientProgress(qint64 numBytes)
{
    bytesWritten += (int)numBytes;
    if (bytesToWrite > 0){
        outBlock = localFile->read(qMin(bytesToWrite, loadSize));
     bytesToWrite -= (int)tcpClient.write(outBlock);
    outBlock.resize(0);    
    }
    else{  
        localFile->close();
    }
    
}
接受端: 
void Dialog::updateServerProgress()
{
         if(bytesReceived <= sizeof(qint64)*2){
        if((tcpServerConnection->bytesAvailable() >= sizeof(qint64)*2)&&(fileNameSize ==0)){
          in>>TotalBytes>>fileNameSize;
    bytesReceived += sizeof(qint64)*2;
       }       
      if((tcpServerConnection->bytesAvailable() >= fileNameSize)&&(fileNameSize !=0)){
       in>>fileName;
       bytesReceived += fileNameSize;
       localFile = new QFile(fileName);
           if (!localFile->open(QFile::WriteOnly )) {
            QMessageBox::warning(this, tr("应用程序"),
                             tr("无法读取文件 %1:\n%2.")
                             .arg(fileName)
                             .arg(localFile->errorString()));
            return;
        }   
      }else{
              return;
      }
    }
    
    if (bytesReceived < TotalBytes){
    bytesReceived += tcpServerConnection->bytesAvailable();
    inBlock = tcpServerConnection->readAll();
    localFile->write(inBlock);
    inBlock.resize(0);
    }
    
    if (bytesReceived == TotalBytes) {
        tcpServerConnection->close();
            }
}