Mon chat ne peut pas recevoir des données

djun123 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
djun123 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis un débutant en c++. J'aimerais un jour à programmer des logiciels. Maintenant, je suis en train de faire mon premier chat. Cela veut dire que je dois travailler à partir du réseau. Mais, mon programme n'arrive pas à recevoir des données. Quelqu'un peut-il m'aider?

Code pour recevoir des données :

void FenClient::donneesRecues()
{
    qint8 tailleMsg(0);
    QDataStream in(socket);
 
    if(socket->tailleMessage()==0)
    {
        if(socket->bytesAvailable()<(int)sizeof(quint16))
        {
                QMessageBox::information(this,"Test du programme","byte valide pour le client dans le serveur : "+QString::number(socket->bytesAvailable()));
                QMessageBox::information(this,"Test du programme","quint16 dans le serveur : "+QString::number(sizeof(quint16)));
            return;
        }
        in >> tailleMsg;
        socket->setTailleMessage(tailleMsg);
    }
    if(socket->bytesAvailable() < socket->tailleMessage())
    {
        QMessageBox::information(this,"Test du programme","taille du message du client dans le serveur : "+QString::number(socket->tailleMessage()));
        return;
    }
 
    QString messageRecu;
    in >> messageRecu;
 
    chatbox->append(messageRecu);
    socket->setTailleMessage(0);
    tailleMsg = 0;
}


Code pour envoyer des données :

void FenClient::on_boutonEnvoyer_clicked()
{
    QByteArray paquet;
    QDataStream out(&paquet,QIODevice::WriteOnly);
    QString messageAEnvoyer;
    QString msgAEnvoyerEfface;
 
    if(message->font().bold())
    {
        messageAEnvoyer += "<b>";
    }
    if(message->font().italic())
    {
        messageAEnvoyer += "<i>";
    }
 
    messageAEnvoyer += "<font color='"+couleur.name()+"'><img src='"+socket->avatar()+tr("' width='25' height='25' border='1'>  <b>")+pseudo->text()+tr("</b> : ")+message->text()+"</font>";
 
    int boucle(0);
    while(boucle<messageAEnvoyer.size())
    {
        if(messageAEnvoyer[boucle]==':'&&messageAEnvoyer[boucle+1]==')')
        {
            for(int i(boucle+2);i<messageAEnvoyer.size();i++)
            {
                msgAEnvoyerEfface += messageAEnvoyer[i];
            }
            messageAEnvoyer.replace(boucle,boucle+1,"<img src='"+QCoreApplication::applicationDirPath()+"/smile_a.png' width='15' height='15'>");
            messageAEnvoyer += msgAEnvoyerEfface;
            msgAEnvoyerEfface.clear();
        }
        boucle++;
    }
    boucle = 0;
    while(boucle<messageAEnvoyer.size())
    {
        if(messageAEnvoyer[boucle]==':'&&messageAEnvoyer[boucle+1]=='(')
        {
            for(int i(boucle+2);i<messageAEnvoyer.size();i++)
            {
                msgAEnvoyerEfface += messageAEnvoyer[i];
            }
            messageAEnvoyer.replace(boucle,boucle+1,"<img src='"+QCoreApplication::applicationDirPath()+"/smile_b.png' width='15' height='15'>");
            messageAEnvoyer += msgAEnvoyerEfface;
            msgAEnvoyerEfface.clear();
        }
        boucle++;
    }
    boucle = 0;
    while(boucle<messageAEnvoyer.size())
    {
        if(messageAEnvoyer[boucle]==':'&&messageAEnvoyer[boucle+1]=='D')
        {
            for(int i(boucle+2);i<messageAEnvoyer.size();i++)
            {
                msgAEnvoyerEfface += messageAEnvoyer[i];
            }
            messageAEnvoyer.replace(boucle,boucle+1,"<img src='"+QCoreApplication::applicationDirPath()+"/smile_c.png' width='15' height='15'>");
            messageAEnvoyer += msgAEnvoyerEfface;
            msgAEnvoyerEfface.clear();
        }
        boucle++;
    }
    boucle = 0;
 
    if(message->font().bold())
    {
        messageAEnvoyer += "</b>";
    }
    if(message->font().italic())
    {
        messageAEnvoyer += "</i>";
    }
 
    out << (quint16) 0;
    out << messageAEnvoyer;
    out.device()->seek(0);
    out << (quint16) (paquet.size() - sizeof(quint16));
 
    socket->write(paquet);
 
    message->clear();
    message->setFocus();
    message->setFont(QFont(message->font().family(),message->font().pointSize(),QFont::Normal));
    couleur.setNamedColor("#000000");
    QPalette palette;
    palette.setColor(QPalette::Text,couleur);
    message->setPalette(palette);
}




EDIT: Spécification du langage dans la coloration syntaxique.
A voir également:

1 réponse

djun123 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai trouvé mon erreur. Merci.
Si vous êtes curieux à propos de comment j'ai résolu le problème, c'est grace à ces 3 sites :
http://www.qtfr.org/viewtopic.php?id=17503
https://www.jeuxvideo.com/forums/42-47-37783388-1-0-1-0-mon-chat-ne-peut-pas-recevoir-des-donnees.htm
https://forums.futura-sciences.com/programmation-langages-algorithmique/671856-chat-ne-recevoir-donnees.html
0