IO serveur et client ! erreur
Bonjour voilà j'ai un problème avec la tentative de création d'un client / serveur.
voilà mes deux sources
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 33 34 35 36 37 38 39 40 41
|
import java.io.*;
import java.net.*;
import java.util.*;
public class main {
public static void main(String args[]) {
System.out.print("Bienvenue sur le chat client...");
try {
socket = new Socket("127.0.0.1",8080);
}
catch(Exception e) {
System.out.print("Erreur ouverture du socket");
}
scanIn = new Scanner(System.in);
try {
out = new PrintWriter(socket.getOutputStream(),true);
} catch (Exception e) {
System.out.print("Erreur création flux sortant");
}
System.out.print("Variable initialisée : attente de la saisie...");
String str;
while(true) {
str = scanIn.nextLine();
out.println(str);
}
}
private static Socket socket;
private static Scanner scanIn ;
private static PrintWriter out ;
} |
SERVEUR:
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 34 35 36 37 38 39
| import java.io.*;
import java.net.*;
import java.util.*;
public class main {
public static void main(String args[]) {
try {
socket = new ServerSocket(8080);
} catch (Exception e) {
System.out.println("Erreur création du ServeurSocket");
}
try {
s = socket.accept();
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
} catch (Exception e) {
System.out.println("Erreur : " + e);
}
String str = "";
try {
while ((str = in.readLine()) != null) {
System.out.println(str);
}
} catch (Exception e) {
System.out.println("Erreur IO " + e);
System.out.println("str : " + str);
}
}
private static ServerSocket socket;
private static BufferedReader in;
private static Socket s;
} |
Voilà si je ferme le server brutalement ( avec la croix du haut par exemple ), le client ne s'en apperçois pas... comment faire donc pour éviter ce genre d'erreur ?
Et si jamais je coupe le client brutalement, alors une exception du type java.net.SocketException: Connection reset se lance...
aidez moi à modifier le code pour ne plus avoir ce genre de problème.
PS: je sais qu'il existe sur le site un tutos qui propose un serveur multi-thread, je l'ai lu mais maintenant j'aimerais essayer d'en faire un moi même.
Je tente déjà de le faire comme ceci et si il marche je passerais en Thread...