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

Développement Discussion :

[client serveur multithread]Java


Sujet :

Développement

  1. #1
    Zay
    Zay est déconnecté
    Nouveau membre du Club
    Profil pro
    Maître assistant
    Inscrit en
    Décembre 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Maître assistant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 53
    Points : 38
    Points
    38
    Par défaut [client serveur multithread]Java
    Bonjour à tous,
    En fait je suis en train de developper une application client/serveur en java
    simulant un exemple industriel..
    Je veux developper un module Superviseur qui est à la fois
    un client et un serveur multithread..
    Pour client serveur simple mon code est:
    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
    try
    	   {	   
    		   	  //Créer un serveur sur le port 12304
    			  ServerSocket server1 = new ServerSocket (12304);
                              Socket       socket1 = server1.accept ();
                              ...
                              socket1.close();
                              // client
    		          try
    		          {
    			  Socket soc = new Socket("127.0.0.1", 12305);
                              ...
                              }
    		          catch (IOException a)
    		          {
    		           System.out.println (a);
    		           } 
    	  }
    	 catch (IOException ex) {System.out.println("Exception :"+ex);}
    Avec un client/serveur simple ça a l'air de marcher!
    Mais quand j'ai essayé de le rendre multithread ça n'a pas marché!!!
    Si quelqu'un peut m'aider, j'en serai reconnaissante
    Merci d'avance

  2. #2
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 161
    Points : 168
    Points
    168
    Par défaut
    hello,

    tu veux probablement que tes paquets ou tes messages circulant sur le réseau soient reçus par une thread et que le traitement qui suit soit réalisé par différentes thread ?

    dans ce cas tu gardes ce que tu as, et quand tu veux réaliser le traitement de tes messages, tu créés différentes thread qui vont faire ce qu'il faut avec le contenu du paquet.

    Il ne faut pas que tu essaies de créér différentes thread qui vont exécuter le code que tu nous as montré, car déjà à priori il faut que tu aies des ports différents.

    Sinon, je dis peut être une bêtise mais si tu veux que tes paquets soient directement reçus par différentes thread tu peux utiliser les java.nio, mais c'est pas forcément le plus simple, et la question de synchronisation des paquets entrant se pose forcément à un moment ou un autre.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Points : 399
    Points
    399
    Par défaut
    Bonjour,
    j'imagine que si vous parlez de superviseur, c'est une sorte de programme qui fera relais entre un client et un serveur, afin de surveiller les échanges par exemple.
    A priori, je regrouperai ça en 3 threads:
    1 Thread de réception type "Serveur",
    1 Thread de traitement,
    1 Thread d'émission type "Client".
    Pour la communication inter-thread, une liste synchronisée ( désolé de ne pas donner la classe exacte ) entre chaque couple de thread (Serveur,Traitement) et (Traitement,Client) feront l'affaire.

    En espérant avoir éclairé votre lanterne,

    S. Desbois

  4. #4
    Zay
    Zay est déconnecté
    Nouveau membre du Club
    Profil pro
    Maître assistant
    Inscrit en
    Décembre 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Maître assistant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 53
    Points : 38
    Points
    38
    Par défaut [client serveur multithread]Java
    Merci pour vos réponses
    En fait je ne connais pas grand chose sur la manipulation des threads
    Est ce que vous avez une idée concernant un cours simple de thread?
    merci bcp

  5. #5
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    La classe implémente l'interface Runnable et lance le thread avec la méthode start() de Thread(objetQuiImplementeRunnable). Le code exécuté se trouve dans la méthode run().
    Exemple :
    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
    public class Connexion implements Runnable {
    
     void ecouter()
     {
       new Thread(this).start(); // lance le thread = appelle la méthode run()
     }
    
     public void run()
     {
        // tout le code ici est exécuté dans un thread séparé
       while(true) { } // exemple : ça ne bloquera pas le reste de ton programme malgré la boucle infinie 
      }  
    }
    
    // appel
    Connexion con = new Connexion();
    con.ecoute(); // thread d'écoute lancé
    Voilà l'exemple le plus simple qui existe.
    Un exemple de serveur multithread : http://defaut.developpez.com/tutorie...r/multithread/

    Nas'

Discussions similaires

  1. client/serveur en java (tcp/ip)
    Par t.n.b.g dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 25/02/2008, 19h22
  2. Client serveur C++/Java
    Par norwy dans le forum C++
    Réponses: 1
    Dernier message: 07/12/2006, 14h44
  3. [Debutant(e)]Client Serveur en Java 1.4...
    Par EnSabahNur dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 13/02/2006, 13h25
  4. Réponses: 5
    Dernier message: 24/09/2005, 20h31

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