Problème chat C++ site du zero

Résolu/Fermé
yougy2 Messages postés 444 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 11 avril 2016 - Modifié par yougy2 le 19/03/2014 à 00:26
 Jean-Cloadeux - 24 mars 2014 à 16:24
Bonjour, Dans un premier temps je tiens a préciser que ce post est un doublon de mon premier post, pour une personne qui m'avais demandé d'indenter mon code et que je ne pouvais pas faire car impossible de trouer le bouton pour éditer mon texte. Si le premier post doit être supprimé, qu'il le soit, mais ce post deviens de post principal. Merci de votre compréhension.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Bonjour, voilà, j'apprends le C++ sur le site du zero et j'en suis arrivé a créer un chat (serveur + client)

j'arrive a me connecter sur mon serveur a partir du client mais je ne peux pas envoyer de messages, enfin je les envoie, mais au moment ou le serveur doit renvoyer le message pour qu'il s'affiche dans la zone des messages, je recois un message blanc.

J'ai donc essayé de créer juste une fonction d'envoi sur le serveur lui même qui envoie un simple "bonjour" a chaque clic sur un bouton et il se passe quelque chose de bizarre :
Le serveur envoie un message blanc et si je me met a spammer le bouton, il envoie des messages blancs jusqu'a un moment ou il se met enfin a envoyer les fameux "bonjour" donc le problème ne peux logiquement pas venir de mes fonctions d'envoi et réceptions (que je vais citer plus bas) puisque le message finit par s'envoyer correctement.
Je patauge depuis un ptit moment, j'ai 2 pc distants, (qui auparavant étaient sur 2 reseaux differents et qui sont désormais sur le même), voici les méthodes de réception et d'envoi de messages.

serveur :


(fonction de reception de message)

void FenServer::recieveData()
{
    QTcpSocket *socket = qobject_cast<QTcpSocket *>(sender());
    if(socket == 0)
        return;

    QDataStream in(socket);

    QString message;
    in << message;

    

    sendBroadcastMessage(message);

}



(fonction d'envoi de message)

void FenServer::sendBroadcastMessage(const QString &message)
{
    QByteArray paquet;
    QDataStream out(&paquet, QIODevice::WriteOnly);


    out << message;

    for(int a = 0; a < clients.size(); a++)
    {
        clients[a]->write(paquet);
    }
}



client :

(fonction d'envoi)

void FenClient::sendData()
{
    QByteArray paquet;
    QDataStream out(&paquet, QIODevice::WriteOnly);

    QString sendingMessage = "<strong>" + pseudo + " : </strong>" + zoneMessage->text();


    out << sendingMessage;


    socket->write(paquet);

    zoneMessage->clear();
    zoneMessage->setFocus();
}


(fonction de reception)


void FenClient::recieveData()
{
    QDataStream in(socket);

    QString messageRecu;
    in >> messageRecu;
    zoneText->append(messageRecu);
}



voilà je suis disponible pour toute question ou éclaircissement, je vous remercie d'avance pour votre aide.


A voir également:

3 réponses

yougy2 Messages postés 444 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 11 avril 2016 127
19 mars 2014 à 14:34
En fait, problème résolu par moi même pas besoin de l'aide très abondante de ce forum merci :)
1
yougy2 Messages postés 444 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 11 avril 2016 127
19 mars 2014 à 13:41
up :/
0
Jean-Cloadeux
24 mars 2014 à 16:24
Salut, il est possible de savoir comment tu à fait ? Merci.
0