Bonjour voilà j'ai un problème avec la tentative de création d'un client / serveur.

voilà mes deux sources

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
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 : 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
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...