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

Entrée/Sortie Java Discussion :

Socket en UDP - Multicast - Chat - Problème.


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Par défaut Socket en UDP - Multicast - Chat - Problème.
    Bonjour,

    confronté à un nouveau petit problème :

    J'ai un CHAT qui fonctionne avec Socket en UDP et qui permet de faire l'envoi des messages en MULTICAST à l'adresse : 234.5.5.10

    C'est simple, mes clients CHAT se connectent à un manager via une socket TCP, en s'identifiant Login#password.
    Le manager fait des accès à une BD oracle, qui recherche la validité des accès.
    Si les accès sont valable, le manager renvoie : l'adresse et le port multicast.
    Une fois l'adresse multicast (234.5.5.10) et son port (27010) renvoyé au client, ce dernier se connecte par une socket UDP, rejoignant le même groupe que les autres.

    Le probleme :
    - En local, sur le même PC, tout fonctionne nickel !
    - En réseau cablé ou wifi (peu importe), sur 2 pc différents, la connexion socket TCP se fait correctement, l'authentification également, mais lors de l'envoi des messages, les clients ne peuvent pas recevoir les messages du correspondant.

    En gros, uniquement les clients sur le meme pc peuvent voir les dialogues inter-clients. De PC à PC, cela ne fonctionne pas.

    Pouvez-vous me dire pourquoi ? Y'aurait-il une manipulation que j'aurais oubliée ?

    Merci d'avance.

  2. #2
    Membre éclairé
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Par défaut
    Suis-je dans la bonne section du forum, ou je rêve et aucune personne ici présente n'a jamais programmé avec des socket en java ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut
    si j'ai bien suivi ton raisonnement, tu as 4 sockets d'ouvertes:
    _2 en TCP pour l'envoi et la réception des messages d'authentification
    _2 en UDP pour l'envoi et la réception des messages de base

    c'est ça?

  4. #4
    Membre éclairé
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Par défaut
    Non, j'ai 2 Sockets (une en TCP, une en UDP) ... pour chacun des client.

    Mais bon, on peut faire abstraction de la socket TCP qui elle, fonctionne très bien.

    C'est la Socket UDP pour moi qui pose probleme.

    Quand je lance X clients sur la meme machines, ils recoivent tous les messages qu'ils envoient (le but d'un chat), mais dès que je passe sur 2 machines différentes et que j'essaye de les faire communiquer, cela ne fonctionne plus.

    - Les clients sur la machine A voient leur messages. (192.168.1.2/24)
    - Les clients sur la machine B voient leur messages. (192.168.1.3/24)
    - Les clients de la machine A ne voient pas les messages des clients de la machine B. (et vice-versa).

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut
    Désolé si je me fais lourd, mais je pense vraiment (avec les léléments que tu as fournis) que ton problème vient de tes sockets.
    Essaie dans un premier temps de les différencier en faisant une communication point à point distante; puis dans un deuxième temps (quand le premier point fonctionnera) utilise les sockets multipoints (Class MulticastSocket) tu verras que c'est super simple à mettre en place et que ça ne pose vraiment pas de difficulté (surtout en réseau local).

    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
     
    try {
         MulticastSocket ms = new MulticastSocket(4000);
         InetAddress ia = InetAddress.getByName("192.168.1.1");
         ms.joinGroup(ia);
         byte[] tampon = new byte[8192];
         while(true) {
              DatagramPacket dp = new DatagramPacket(tampon,tampon.length);
              String s = new String(dp.getData(), "8859_1");
              System.out.println(s);
         }
    }
    catch(IOException ie) {
         System.err.println(ie);
    }

  6. #6
    Membre éclairé
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Par défaut
    C'est bien de cette manière que je procède, en effet.

    Avec la classe MulticastSocket, InetAddress, en faisant le joinGroup, etc ...

    Sur le même pc, ca fonctionne mais pas de PC en PC.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Réseau] Créer une socket UDP multicast
    Par lilou77 dans le forum C++
    Réponses: 7
    Dernier message: 12/08/2010, 16h19
  2. socket udp multicast et l'api java.nio
    Par maarek dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 01/07/2008, 07h33
  3. Problème de socket en UDP
    Par alexorcet dans le forum Réseau
    Réponses: 17
    Dernier message: 27/05/2008, 17h43
  4. [Debutant] Problème Socket Linux UDP
    Par AxldenieD dans le forum Réseau
    Réponses: 3
    Dernier message: 01/11/2005, 17h08
  5. [Conception][Socket]Conception d'un "chat"
    Par Pill_S dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 12/09/2004, 01h41

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