Partage
  • Partager sur Facebook
  • Partager sur Twitter

[ serveur multi clients ]

besoin d'aide!!!

    10 mai 2008 à 19:16:09

    Bonjour à tous,

    j'aimerais faire un serveur multiclients en Java.
    je crée une classe serveur qui écoute sur une socket associée au port 18000.
    J'attends des connections client et lorsqu'un client se connecte je lance un nouveau thread à chaque fois.

    Lorsque je lance un client (qui se connecte simplement en localhost au port 18000) il se connecte correctement au serveur mais lorsque je lance un second client il déconnecte le premier et se connecte à sa place.

    Je suis quasi certain que le problème se situe au niveau du client alors est-ce que quelqu'un pourrait m'aider à ce niveau svp? Ou si quelqu'un a des codes serveur - multiclients afin de comprendre, ça m'intéresse!

    Merci d'avance! :D

    PS: voilà le code client
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.net.*;
    
    public class Client {
       public final static int DEFAULT_PORT = 18000;
       private static Socket s;
       private static ObjectOutputStream objOutput;
       private static ObjectInputStream objInput;
       
       private static void connection(String host) throws IOException {
          s = new Socket(host, DEFAULT_PORT);
       }
    
       public static void main(String args[]) {
    	   
    	   try {
    		   connection(args[0]);
    		   System.out.println(
    				   "Connected to " + s.getInetAddress() + ":" + s.getPort()
    		   );
    	   } catch (IOException ioe) {
    		   System.out.println("probleme de connection");
    		   ioe.printStackTrace(); 
    	   } finally {
    		   try { if (s != null) s.close(); }
    		   catch (IOException e) { e.printStackTrace(); }
    	   }
       }
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
      10 mai 2008 à 19:24:37

      import java.io.PrintWriter;
      import java.net.*;
      import java.util.*;
      
      public class Main implements Runnable {
          /**                                                                                                                                      
           * @param args                                                                                                                           
           */
          public static void main(String[] args) {
              try {
                  ServerSocket sock = new ServerSocket(8189);
                  for (;;) {
                      Socket s = sock.accept();
                      System.out.println("connection recu");
                      new Thread(new Main(s)).start();
                  }
              } catch (IOException e) {
                  e.printStackTrace();
              }
      
          }
      
          private static int i = 0;
      
          private int s_nb = 0;
      
          private Socket s = null;
      
          public Main(Socket s) {
              this.s = s;
              this.s_nb = ++i;
          }
      
          public void run() {
      
              try {
                  Scanner sc = new Scanner(s.getInputStream());
                  String str = null;
                  while ((str = sc.nextLine()) != null)
                      System.out.println(str);
              } catch (Exception e) {
              }
          }
      }
      



      EDIT :

      oui j'oubliais
      evite le static ......
      • Partager sur Facebook
      • Partager sur Twitter

      [ serveur multi clients ]

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown