Results 1 to 5 of 5
  1. #1
    stessie is offline Member
    Join Date
    Feb 2008
    Posts
    5
    Rep Power
    0

    Unhappy Help Java!!!!!!!!!!!!!!!!!

    Bonjour,j'ai des difficultes à resoudre un problème Client/serveur,.il s'agit d'ecrire un serveur pour un chat de tel sorte que le client envoie un message au serveur et le serveur le renvoie à tous ceux qui sont connectés en ajoutant le nom de celui qui le lui a envoyé devant le message.J'ai essayé d'ecrire ce code mais je ne sais pas pourquoi ça ne compile pas et meme quand je l'ai d'abord compilé,le serveur ne reçevait pas de message.Help,c'est vraiment urgent que vous m'aidiez.voici le code que j'ai essayé d'ecrire.


    package Chat;

    import java.io.*;
    import java.net.*;
    import java.util.*;
    public class ServerChat {
    private ArrayList<Chatteur> listChatteur = null;
    private ServerSocket serv = null;
    static int port = 6667;
    //ArrayList<Chatteur> copieList=null //n'est pas à sa place

    private class Chatteur {
    private Socket socket;
    private OutputStream sockOut;
    public Chatteur(Socket sock) throws IOException {
    socket = sock;
    sockOut = socket.getOutputStream();
    }
    public Socket getSocket() { return socket; }
    public OutputStream getSockOut() { return sockOut; }
    }


    public static void main(String args[]) {
    try{
    ServerChat server = new ServerChat();
    server.go();
    } catch (Exception e) {
    System.err.println("erreur server : "+e.getMessage());
    }


    }

    public ServerChat() throws IOException {
    serv = new ServerSocket(port);
    listChatteur = new ArrayList();
    while (true){
    Chou client = new Chou();
    client.start();
    }
    }

    public void go() throws IOException {
    for(;;) {
    Socket socket = serv.accept();
    System.out.println("connection de : "+socket);

    synchronized(listChatteur) {
    listChatteur.add(new Chatteur(socket));
    }
    }
    }
    }
    private class Chou extends Thread{
    public void run(){
    BufferedReader sockIn = null;
    String message = null;
    ArrayList<Chatteur> copieList = null;
    byte[] buffer = new byte[1024];
    OutputStream sockOut = null;

    sockIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    while (true) {
    try {
    message = sockIn.readLine()+"\n";
    } catch (IOException e) {
    }
    synchronized(listChatteur) {
    copieList = (ArrayList<Chatteur>)listChatteur.clone();
    }
    buffer = message.getBytes();
    for (Chatteur chatteur : copieList) {
    try {
    sockOut = chatteur.getSockOut();
    System.out.println("Diffusion d'un message du socket : "+message+"/"+chatteur.getSocket());
    sockOut.write(buffer, 0, message.length());
    sockOut.flush();
    } catch (IOException e2) {
    listChatteur.remove(chatteur);
    }
    }
    }
    }
    }




    Le resultat doit etre de cette forme


    connection de : Socket[addr=/127.0.0.1,port=59177,localport=6667]
    diffusion d'un message du socket : Socket[addr=/127.0.0.1,port=59177,localport=6667] : stella : je
    envoi au socket : Socket[addr=/127.0.0.1,port=59177,localport=6667]
    diffusion d'un message du socket : Socket[addr=/127.0.0.1,port=59177,localport=6667] : stella : suis
    envoi au socket : Socket[addr=/127.0.0.1,port=59177,localport=6667]
    connection de : Socket[addr=/127.0.0.1,port=46547,localport=6667]
    diffusion d'un message du socket : Socket[addr=/127.0.0.1,port=46547,localport=6667] : toto : oui
    envoi au socket : Socket[addr=/127.0.0.1,port=59177,localport=6667]
    envoi au socket : Socket[addr=/127.0.0.1,port=46547,localport=6667]
    diffusion d'un message du socket : Socket[addr=/127.0.0.1,port=59177,localport=6667] : stella : java
    envoi au socket : Socket[addr=/127.0.0.1,port=59177,localport=6667]
    envoi au socket : Socket[addr=/127.0.0.1,port=46547,localport=6667]
    diffusion d'un message du socket : Socket[addr=/127.0.0.1,port=46547,localport=6667] : toto : forums
    envoi au socket : Socket[addr=/127.0.0.1,port=59177,localport=6667]
    envoi au socket : Socket[addr=/127.0.0.1,port=46547,localport=6667]
    diffusion d'un message du socket : Socket[addr=/127.0.0.1,port=46547,localport=6667] : toto : ainsi
    envoi au socket : Socket[addr=/127.0.0.1,port=59177,localport=6667]
    envoi au socket : Socket[addr=/127.0.0.1,port=46547,localport=6667]
    diffusion d'un message du socket : Socket[addr=/127.0.0.1,port=59177,localport=6667] : stella : est il
    envoi au socket : Socket[addr=/127.0.0.1,port=59177,localport=6667]
    envoi au socket : Socket[addr=/127.0.0.1,port=46547,localport=6667]
    diffusion d'un message du socket : Socket[addr=/127.0.0.1,port=46547,localport=6667] : toto : merci
    envoi au socket : Socket[addr=/127.0.0.1,port=59177,localport=6667]
    envoi au socket : Socket[addr=/127.0.0.1,port=46547,localport=6667]

    sachant que :

    Le client fait :
    - le port utilisé est 6667
    - le client saisit des messages en console et les envoie au serveur
    - il envoie en caractère son_pseudo : message\n sur le socket et flush le tampon
    - simultanément lit les messages qui arrivent et les affichent en console
    - quand le client saisit q pour quitter, il envoie le message "au revoir" et ferme proprement
    http://www.java-forums.org/images/smilies/confused.gif
    tester le client marche avec telnet -e $ localhost 6667
    merci de votre aide

  2. #2
    Thewhitelynx is offline Member
    Join Date
    Mar 2008
    Posts
    2
    Rep Power
    0

    Default

    Loquor Latine

  3. #3
    Eranga's Avatar
    Eranga is offline Moderator
    Join Date
    Jul 2007
    Location
    Colombo, Sri Lanka
    Posts
    11,371
    Blog Entries
    1
    Rep Power
    20

  4. #4
    stessie is offline Member
    Join Date
    Feb 2008
    Posts
    5
    Rep Power
    0

    Default i have resoved it!!!!

    sorry ,i didn't know the site was in english because i'm a quite new member but i've finally resolved it .There was a problem on the thread i used but it's ok now.thanks a lot

  5. #5
    Eranga's Avatar
    Eranga is offline Moderator
    Join Date
    Jul 2007
    Location
    Colombo, Sri Lanka
    Posts
    11,371
    Blog Entries
    1
    Rep Power
    20

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •