import java.net.*; import java.io.*; public class Connexion extends Thread { Socket s; BufferedReader s_in; PrintWriter s_out; public Connexion(Socket s) { try { // associe un flot de caractères en sortie à la socket s_out = new PrintWriter(s.getOutputStream()); // et un flot en entrée. On utilise un InputStreamReader pour // Transformer un InputStream en Reader s_in = new BufferedReader(new InputStreamReader(s.getInputStream())); } catch(IOException e) { System.err.println("Connexion: " + e); try {s.close();} catch(IOException e2) {} return; } this.s = s; this.start(); } public void run() { try { while(true) { // En attente d'un message sur le flot d'entree String msg = s_in.readLine(); // en v'la un ... System.out.println("Connexion: message reçu du client " + s.getInetAddress() + " : " + msg); // suicide si message de fin de connexion du client if(msg.toUpperCase().compareTo("FIN") == 0) break; // sinon, on envoie au client la chaine transformee en majuscules s_out.println(msg.toUpperCase()); s_out.flush(); } } catch(IOException e) { System.err.println("Connexion: " + e); } finally { System.out.println("Connexion: connexion terminée"); try {s.close();} catch(IOException e) {} } } }