Serveur de message multiconnexion

Soyez le premier à donner votre avis sur cette source.

Snippet vu 19 349 fois - Téléchargée 28 fois

Contenu du snippet

Voici le script d'un petit serveur de message.
En réponse à une personne du forum pour la gestion de plusieurs connexion en utilisant des Threads.

Source / Exemple :


Voici l'exemple d'un serveur de Message gérant plusieurs connexions

import java.io.*;
import java.net.*;
import java.util.*;

public class ServeurMess {

  private ServerSocket server ;
  private static ServIHM ihm;
  private Socket client ;
  public static int numero_req = 1 ;

  public ServeurMess() {
   try{
      System.out.println("création du \"Socket serveur\"");
      server = new ServerSocket(5000) ;

      while(true) {
        System.out.println("Attente d'une requête");
        client = server.accept() ;
        System.out.println("Requete "+numero_req+" prise en compte");
        //Utilisation du ServeurRequete
        ServeurRequete requet=new ServeurRequete(client,ihm,numero_req);
        requet.start();//Lancement du serveur de requête
        System.out.println("Traitement de la requête : "+numero_req);
                    numero_req++ ;
    	     }
    	}
catch (Exception e) { System.out.println(e) ; }
  }
  public static void main(String[] args) {
  	  ihm = new ServIHM("Serveur d'affichage");
  ServeurMess serveur = new ServeurMess();
  }
}

Classe ServeurRequête

Il s'agit d'un serveur qui gère la connexion avec un seul client.

Voici son code :

import java.io.*;
import java.net.*;
import java.util.*;

public class ServeurRequete extends Thread  {

  private Socket client;
  private ServIHM ihm;
  private int num_requete;

  //Paramètrage du serveur de requête
  public ServeurRequete(Socket client, ServIHM ihm, int number ) {
    	this.client=client;  //Connexion avec le client
this.ihm=ihm;  //Indique la fenêtre d'écriture des messages
this.num_requete=number;  //Indique le numero du client
  }
  public void run() {//Methode permettant de lancer le thread
try{
      BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())) ;
      //Affichage dans la fenêtre du serveur la
      ihm.affiche("Requete("+num_requete+"): Ouverture") ;
      //Affichage des messages envoyés par le client
 	      for(String input = in.readLine();input!=null;input = in.readLine()){
   ihm.affiche("Requete("+num_requete+"):"+input);}
}
catch (Exception e) {System.out.println("erreur");}//Detection de la deconnexion du client
ihm.affiche("Requete("+num_requete+"): Fermeture") ;
   }
}

Conclusion :


Explication de ses classes combinées :

Dès qu’un client se connecte sur le serveur de type ServMess, ce dernier accepte la communication puis lui affecte un serveur de requête et se remet en attente d’une requête. Le serveur de requête affichera les messages du clients dans la fenêtre de lecture du serveur de messsage et se charge en même tant de détecter la déconnexion de son client.

A voir également

Ajouter un commentaire Commentaires
Messages postés
68
Date d'inscription
jeudi 27 janvier 2011
Statut
Membre
Dernière intervention
7 février 2014
10
Bonsoir,
et si on veut accepter juste 2 clients pas plus??
Messages postés
11
Date d'inscription
lundi 27 juillet 2009
Statut
Membre
Dernière intervention
1 juillet 2011

Vraiment pqoi pqoi poster des codes à moitié. Si vous ètes prèts à partager, on est ensemble sur codeSources sinn vaut mieux s'abstenir. ça fait pas avancer.
Merci pour la compréhension....
Ak ..
Messages postés
1
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
5 décembre 2007

j sais pas a koi sert de mettre un code manquant!!!!!!!!!!!!
Messages postés
4
Date d'inscription
mercredi 3 septembre 2003
Statut
Membre
Dernière intervention
2 mars 2004

Salut tous le monde

je me demande si vous avez un petit tutorial qui m'aide a comprendre comment etablir un serveur multiconnexion

Merci D'avance :)
Messages postés
26
Date d'inscription
lundi 24 septembre 2001
Statut
Membre
Dernière intervention
6 novembre 2003

ok merci mais quand le prog est compet c'est toujours mieux.. j'avais commencé un prog de chat en java mais j'ai du arreter car je n'arrivais pas au bout... le server fonctionne (c'est en mode console) mais pour le client qui a une interface graphique y'a des prob de connexion ...
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_pilote)