发送文件,收到错误

时间:2014-05-27 14:19:16

标签: c++ qt tcp qtnetwork

我尝试使用Qt Network发送许多文件但是有问题。 我的客户端工作正常5个文件,但我的服务器没有收到所有文件。 我的服务器接收2个文件,然后,如果我发送新文件,则等待的第三个文件到达服务器...

以下是我接收文件的代码:

void Serveur::fichier_recu() {
 
    /* Permet de connaître la socket du client qui envoie le fichier */
    QTcpSocket *socket_client = qobject_cast<QTcpSocket *>(sender());
 
    if(socket_client == 0) {
        return;
    }
 
    QDataStream in(socket_client);
    /* Si taille_message est vide, on regarde si on recois des données */
    if(taille_message == 0) {
        /* si les données sont < qu'un quint32 on quitte et attend jusqu'à ce qu'elles soit égales à un quint32 */
        if(socket_client->bytesAvailable() < sizeof(quint32)) {
            return;
        }
        in >> taille_message;
    }
 
    if(socket_client->bytesAvailable() < taille_message) {
        //Tout n'est pas encore arrivé
        return;
    }
 
    cout << "<Sytem> Reception d'un fichier." << endl;
 
    QByteArray donnees;
    QString nom_fichier;
    in >> nom_fichier >> donnees;
 
    QFile fichier("sauvegarde/" + nom_fichier);
    fichier.open(QIODevice::WriteOnly);
    fichier.write(donnees);
    fichier.close();
 
    taille_message = 0;
 
    cout << "<System> Reception du fichier effectuee." << endl;
}

0 个答案:

没有答案