Bonjour à tous,

voilà j'aimerais créer une application de type "Serveur", qui ouvre 2 ports et qui attend une connexion sur chacun d'eux. Donc je crée une classe Serveur que voici :

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
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.io.*;
import java.net.*;
 
public class Serveur {
 
   public Serveur(int port) throws Exception{
        ServerSocket s = new ServerSocket(port);
        Socket soc = s.accept();
 
        // Un BufferedReader permet de lire par ligne.
        BufferedReader plec = new BufferedReader(
                               new InputStreamReader(soc.getInputStream())
                              );
 
        // Un PrintWriter possède toutes les opérations print classiques.
        // En mode auto-flush, le tampon est vidé (flush) à l'appel de println.
        PrintWriter pred = new PrintWriter(
                             new BufferedWriter(
                                new OutputStreamWriter(soc.getOutputStream())), 
                             true);
 
        while (true) {
           String str = plec.readLine();          // lecture du message
           if (str.equals("END")) break;
           System.out.println("ECHO = " + str);   // trace locale
           pred.println(str);                     // renvoi d'un écho
        }
 
        plec.close();
        pred.close();
        soc.close();
   }
}
Le constructeur reçois le numéro de port a mettre en écoute. Je crée donc 2 objets Serveur avec le main :

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
public class main {
 
	public static Serveur serv1 = null;
	public static Serveur serv2 = null;
 
	public static void main(String[] args) {
		try {
			serv1 = new Serveur(8080);
			serv2 = new Serveur(9090);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 
	}
 
}
Le probléme est que mon client arrive bien a se connecter au premier port (8080), il recoit et envoie bien les données mais il n'arrive pas à se connecter au deuxiéme port (9090), on dirait qu'il peut s'y connecter mais aucune données transite.

Voici le code de mon client :

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
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.*;
import java.net.*;
 
 
public class Client {
   static final int port = 9090;
 
   public static void main(String[] args) throws Exception {
        Socket socket = new Socket("localhost", port);
        System.out.println("SOCKET = " + socket);
 
        BufferedReader plec = new BufferedReader(
                               new InputStreamReader(socket.getInputStream())
                               );
 
        PrintWriter pred = new PrintWriter(
                             new BufferedWriter(
                                new OutputStreamWriter(socket.getOutputStream())),
                             true);
 
        String str = "bonjour";
        for (int i = 0; i < 10; i++) {
           pred.println(str);          // envoi d'un message
           str = plec.readLine();      // lecture de l'écho
        }
        System.out.println("END");     // message de terminaison
        pred.println("END") ;
        plec.close();
        pred.close();
        socket.close();
   }
}
Voilà, si quelqu'un aurait d'où le problème peut venir ce serait super .
Merci d'avance.

++