Bonjour à tous,
je voudrais pourvoir récupérer le message que j envoie depuis mon application client mais la le serveur ne me renvoie rien.
Il arrête après l 'etape1.
Et je ne vois pas d'où vient le problème.
D'avance merci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
void FenConnecter::donneesRecues()
{
    QMessageBox::information(this,"test","Données recue");
 
    // 1 : on reçoit un paquet (ou un sous-paquet) d'un des clients
 
    // On détermine quel client envoie le message (recherche du QTcpSocket du client)
    QTcpSocket *socket = qobject_cast<QTcpSocket *>(sender());
    if (socket == 0) // Si par hasard on n'a pas trouvé le client à l'origine du signal, on arrête la méthode
        return;
 
    // Si tout va bien, on continue : on récupère le message
    QDataStream in(socket);
 
    if (tailleMessage == 0) // Si on ne connaît pas encore la taille du message, on essaie de la récupérer
    {
        if (socket->bytesAvailable() < (int)sizeof(quint16)) // On n'a pas reçu la taille du message en entier
             return;
 
        in >> tailleMessage; // Si on a reçu la taille du message en entier, on la récupère
    }
    QMessageBox::information(this,"test","Taille message :"+QString::number(tailleMessage));
    QMessageBox::information(this,"test","Taille du socket:"+QString::number(socket->bytesAvailable()));
    QMessageBox::information(this,"test","etape1");
    // Si on connaît la taille du message, on vérifie si on a reçu le message en entier
    if (socket->bytesAvailable() < tailleMessage) // Si on n'a pas encore tout reçu, on arrête la méthode
        return;
    QMessageBox::information(this,"test","etape2");
 
    // Si ces lignes s'exécutent, c'est qu'on a reçu tout le message : on peut le récupérer !
    QString message;
    in >> message;
    QMessageBox::information(this,"test","etape3");
 
 
    // 2 : on renvoie le message à tous les clients
    QMessageBox::information(this,"test","le message est : "+message);
 
    // 3 : remise de la taille du message à 0 pour permettre la réception des futurs messages
    tailleMessage = 0;
    QMessageBox::information(this,"test","etape4");