Ce forum est maintenant fermé, seule cette archive statique reste consultable.
  FORUM Rue-Montgallet.com
  Programmation
  Java

  programmer un chat

Bas de page
Auteur Sujet :

programmer un chat

n°19700
miminono
Profil : Jeune recrue
Posté le 03-01-2010 à 11:59:36  
 

Bonjour,
Tout d'abord dsl si ce sujet existe deja mais je n'ai pas trouvé !!
 
Je dois réaliser un chat dont l'architecture est la suivante
• Un serveur central.
• Communication avec des sockets.
• Utilisation de threads.
• Utilisation de la sérialisation.
• Utilisation de la synchronisation.
• Interface client en Swing.
 
Mais je suis bloqué !!
 
Merci de votre aide.

mood
Pub
Posté le 03-01-2010 à 11:59:36  
 

n°19730
Neomaven
Profil : Jeune recrue
Posté le 06-02-2010 à 05:20:07  
 

Exemple d'une application de chat a base de socket
-----------------------------------------------------
========> class Serveur
[java]
public class Serveur implements Serializable {
 /***********************Partie Variable**********************************/

 

   static Vector connexions = new Vector();
    int idClients = 0;

 

   /***La classe Service est un thread qui pourrait avoir l'allure suivante***/
    public class Service extends Thread{
    Socket sService; // la socket de service
    // constructeur
    public Service(Socket S){
        sService=S;
      }
    // run
    public void run(){
          try{
            // on crée les flux d'entrée-sortie
            BufferedReader in=new BufferedReader(new InputStreamReader(sService.getInputStream()));
            PrintWriter out=new PrintWriter(sService.getOutputStream(),true);
            connexions.add(out);
            // boucle demande - réponse
            boolean fini = false;
            String demande;
            while (! fini){
                // on lit la demande
                demande=in.readLine();
                // on l'envoie à tous les clients
                for(int i = 0; i < connexions.size(); i++)
                {
                    PrintWriter sout = (PrintWriter) connexions.get(i);
                    if(sService.isClosed()){
                        fini = true;
                        continue;
                    }

 

                   sout.println(demande);
                }
            }
            // c'est fini
            connexions.remove(out);
            sService.close();
           }catch(Exception e){
            // on gère l'exception
            System.out.println("Erreur ! "+e);
         }// try
      }// run
    }

 

   public Serveur() {
    }
    public void dialiguer(){
        ServerSocket sEcoute = null;
        try {
            // ouverture du service
            int portEcoute = 8080;
            int maxConnexions = 10;
            sEcoute = new ServerSocket(portEcoute, maxConnexions);
            // traitement des demandes de connexion
            boolean fini = false;
            Socket sService = null;
            while (!fini) {
                // attente et acceptation d'une demande
                sService = sEcoute.accept();
                System.out.println("Connexion accpetée..." );
                // le service est rendu par une autre tâche à laquelle on passe la socket de service
                new Service(sService).start();
                // on se remet en attente des demandes de connexion
                //if(connexions.size()==0) fini=true;
            }
            // c'est fini - on clôt le service
            sEcoute.close();
        } catch (Exception e) {
            // on traite l'exception
            System.out.println("Erreur ! "+e);
        }
    }
}
[/java]

 

=========>  Class Client
[java]
public class Client implements Serializable {
    /***********************Partie Variable**********************************/

 

  /***La classe Service est un thread qui pourrait avoir l'allure suivante***/
    public class Service extends Thread {
    Socket sService; // la socket de service
    // constructeur
    public Service(Socket S){
        sService=S;
      }
    // run
    public void run(){
          try{
            // on crée les flux d'entrée-sortie
            BufferedReader in=new BufferedReader(new InputStreamReader(sService.getInputStream()));
            // boucle demande - réponse
            boolean fini = false;
            String demande;
            while (! fini){
                // on lit la demande
                demande=in.readLine();
                System.out.println(demande);
                // on l'envoie à tous les clients
                if(sService.isClosed()) {
                    fini=true;
                }
            }
            // c'est fini
            sService.close();
           }catch(Exception e){
            // on gère l'exception
            System.out.println("Erreur ! "+e);
         }// try
      }// run
    }
    private String pseudonyme;
    public Client(String pseudo) {
        pseudonyme = pseudo;
    }
    public void dialoguer(){
        Socket sClient = null;
        try {
            // ouverture du service
            sClient = new Socket("127.0.0.1", 8080);
            // traitement des demandes de connexion
            new Service(sClient).start();
            BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
            PrintWriter out=new PrintWriter(sClient.getOutputStream(),true);
            boolean fini = false;
            String reponse;
            while (!fini) {
               // on se remet en attente des demandes de connexion
               reponse = in.readLine();
               out.println(pseudonyme+" : "+reponse);
               if(reponse.equals("quitter" ))
                   fini=true;
            }
            // c'est fini - on clôt le service
            sClient.close();
        } catch (Exception e) {
            // on traite l'exception
            System.out.println("Erreur ! "+e);
        }
    }
}
[/java]
Manque que le main pour chaque class et ca devrait marcher.
J'espère que ca pourra t'aider :)


Message édité par Neomaven le 06-02-2010 à 05:22:51
n°20213
kouna2011
Profil : Jeune recrue
Posté le 12-11-2011 à 22:30:33  
 

Bonjour
Dommage ce programme de chat ça marche pas,est ce que vous pouvez m'aider SVP; je suis pressé. :bounce:

  FORUM Rue-Montgallet.com
  Programmation
  Java

  programmer un chat

© 2000-2019 Forum.rue-montgallet.com - Tous droits réservés