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 :

Server multi-client en udp


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Par défaut Server multi-client en udp
    bonjour,

    quelle sont les différentes actions envisageable pour creer un serveur udp pouvant gérer plusieurs client..

    Merci

  2. #2
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Comme je le disais dans ton topic precedent ...

    il faut que tu utilises un nouveau thread quand un client ce connect et que tu delègue la gestion du client a se thread comme cela ton serveur peut se remettre en ecoute et ainsi prendre en charge un nouveau client que tu traitera de maniere similaire.

    Si tu veux eviter de trop t'aracher les cheveux avec la gestion de thread, tu peux t'apuyer sur la class executor qui permet de creer un pool fini de thread et qui s'occupe de dispatcher les tache au thread.

    ++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Par défaut
    merci pour cette réponse.

    En fait, j'ai déjà un pool de thread qui gère les traitements une fois le paquet reçu afin de pouvoir se remettre en écoute..

    Seulement, je n'arrive pas à m'en sortir si dans ce "traitement", il y a une écoute spécifique à faire..

    En gros, comment écouter un paquet spécifique due au traitement, tout en continuant d'écouter tout le reste.

  4. #4
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    dans ce cas precis il te faut un thread de managment global situé entre le serveur et les client qui receptionne l'ensemble des paquets et qui fasse le trie au moment de la reception du paquet avant de creer un nouveau thread pour le client. si jamais le paquet est un paquet attendu par un thread existant tu le transmet au thread qui l'attend sinon tu creer un nouveau thread de managment pour un nouveau client ...

    ++

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Par défaut
    Tu veux dire que dans la thread de traitement, il faut faire qq'chose qui "attend" (mais pas un socket.receive()).

    Et que la thread qui recoit tout les paquets puisse envoyer le paquet à la thread qui "attend" ?

  6. #6
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    c'est cela je ferai un thread intermediaire dans lequel passe l'ensembel de tes paquet mais c sur pas un socket.receive() juste une espece de fifo qui lit chaque paquet et qui soit l'oriente correctement soit creer un nouveau thread client si c necessaire ...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Par défaut
    ok, mais comment communiquer entre les deux threads ? J'pense pas faire des pipes

  8. #8
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    ba ecoute si tu veux pas faire de pipe il qaut que tu conserve une liste de thread existant et que tu creer une méthode dans le thread qui permet de lui passer des donnés... un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonThread1.CheckPacket(Data);

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Par défaut
    Est ce que je pourrais pas mettre dans le thread qui gère tous les receive, une sorte de bureau de poste, qui serait un hashMap, où pour chaque thread en clé il y a une liste de message en attente.

    Le thread traitement irait chercher dans sa liste de messages en attente les paquets qui lui sont destinés..

    ?

  10. #10
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Tu peux aussi faire cela dans ce sens a voir je n'ai pas procedé comme cela mais l'idée ne semble pas mauvaise non plus ...

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Par défaut
    Et si je fais une pseudo-connexion le temps de recevoir les infos, est ce que le receive suivant dans le thread principal recevra les messages arrivés pendant la pseudo-connexion ?

  12. #12
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    attention on parle d'aiguillage de paquet pas de pseudo connexion...

Discussions similaires

  1. Server multi client conception
    Par mercyril dans le forum Réseau
    Réponses: 8
    Dernier message: 29/08/2012, 08h52
  2. Serveur multi-clients UDP TCP
    Par ludovskys dans le forum Réseau
    Réponses: 2
    Dernier message: 23/12/2011, 12h29
  3. Server multi clients
    Par jbarreau-mainson dans le forum Réseau
    Réponses: 6
    Dernier message: 18/03/2009, 16h19
  4. [sockets][UDP][C/C++] serveur multi-clients
    Par l@rry dans le forum Développement
    Réponses: 4
    Dernier message: 08/06/2006, 14h11

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