Besoin d'aide (Socket/Serveur)
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:
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:
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:
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.
++