IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau Discussion :

Problème QUdp Socket


Sujet :

Réseau

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juin 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 1
    Par défaut Problème QUdp Socket
    Bonjour,
    Je créé actuellement une interface avec des échanges client serveur.
    Je suis actuellement devant un petit soucis avec QUdpSocket.
    En effet je n'arrive pas à envoyer avec le serveur un message à plus d'une personne.
    Je suis en réseau local pour tester.

    Sur ce code, c'est toujours le premier client connecté qui recevra le message :s et non pas tous.

    coté client:

    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
    //RECEPTION
       m_udpSocket = new QUdpSocket(this);
        m_udpSocket->bind(QHostAddress::Any, 50885, QUdpSocket::ShareAddress);
        connect(m_udpSocket, SIGNAL(readyRead()), this, SLOT(get()));
    //...
        QString message;
        QByteArray datagram;
        datagram.resize(m_udpSocket->pendingDatagramSize());
        QHostAddress sender;
        quint16 senderPort;
     
        m_udpSocket->readDatagram(datagram.data(), datagram.size(),
                                         &sender, &senderPort);
        QDataStream in(&datagram, QIODevice::ReadOnly);
        in >> message;
        stringr(message);
     
    //ENVOI
        QByteArray paquet;
        QDataStream out(&paquet, QIODevice::WriteOnly);
     
        out << message;
        m_udpSocket->bind(QHostAddress::Any, 50885, QUdpSocket::ShareAddress);
         m_udpSocket->writeDatagram(paquet, QHostAddress("192.168.1.10"), 50885);
    coté serveur :

    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
    //RECEPTION
     m_udpSocket = new QUdpSocket(this);
        m_udpSocket->bind(QHostAddress::Any, 50885, QUdpSocket::ShareAddress);
        connect(m_udpSocket, SIGNAL(readyRead()), this, SLOT(get()));
    //..
        QString message;
        QByteArray datagram;
        datagram.resize(m_udpSocket->pendingDatagramSize());
        QHostAddress sender;
        quint16 senderPort;
     
        m_udpSocket->readDatagram(datagram.data(), datagram.size(),
                                         &sender, &senderPort);
        QDataStream in(&datagram, QIODevice::ReadOnly);
        in >> message;
     
        envoyercord(message);
     
    //ENVOI
     
    void FenServeur::envoyercord(const QString &message)
    {
        QByteArray paquet;
        QDataStream out(&paquet, QIODevice::WriteOnly);
     
        out << message;
    for (int i = 0; i < iplist.size(); i++)
      {
            m_udpSocket->writeDatagram(paquet, QHostAddress(iplist[i]), 50885);
       }
    }
    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Par défaut
    Salut,

    Pour avoir un code serveur multi-client, il faut que tu alloues une socket à chaque nouvelle connexion de client.
    Tu peux les stocker dans une QList.
    Ici, tu ne créé qu'une socket donc tu n'as qu'une seule connexion.
    Il y'a pas mal d'exemples en qt pour une communication tcp serveur/multi-clients, je pense que ça doit y ressembler fortement.

Discussions similaires

  1. Problème de sockets
    Par the_penguin dans le forum Réseau
    Réponses: 8
    Dernier message: 13/04/2006, 19h19
  2. Problême de Socket avec un applet java (RMI/policy)
    Par Vesperal dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 12/04/2006, 12h00
  3. Réponses: 2
    Dernier message: 26/03/2004, 09h15
  4. [Kylix] Problème de socket
    Par RaygKross dans le forum EDI
    Réponses: 1
    Dernier message: 01/03/2004, 19h41
  5. Mysql ne se lance pas problème de socket
    Par Riko dans le forum Installation
    Réponses: 5
    Dernier message: 05/02/2004, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo