--- /dev/null
+import java.net.*;\r
+import java.io.*;\r
+import java.util.*;\r
+\r
+public class EchoServerThreadService implements Runnable {\r
+\r
+ private Socket clientSocket;\r
+ private ArrayList<PrintWriter> listWriter;\r
+\r
+ EchoServerThreadService(Socket clientSocket) {\r
+ System.out.println("Creation d'un thread pour repondre a un client, port " + clientSocket.getPort());\r
+ this.clientSocket = clientSocket;\r
+ }\r
+\r
+ public void run() {\r
+ try {\r
+ doService(clientSocket);\r
+ clientSocket.close();\r
+ } catch (IOException e) {\r
+ System.err.println("IOException : " + e);\r
+ e.printStackTrace();\r
+ }\r
+ finally {\r
+ try {\r
+ if (this.clientSocket != null)\r
+ this.clientSocket.close();\r
+ } catch (IOException e) {\r
+ System.err.println("IOException : " + e);\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+ }\r
+\r
+ public void doService(Socket clientSocket) throws IOException {\r
+ BufferedReader in;\r
+ PrintStream out;\r
+ in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));\r
+ out = new PrintStream(clientSocket.getOutputStream());\r
+ //listWriter.add(new PrintWriter(clientSocket.getOutputStream()));\r
+ boolean end = false;\r
+ while (!end) {\r
+ String theLine = in.readLine();\r
+ if (theLine.equals("."))\r
+ end = true; // le thread de service doit terminer\r
+ out.println(theLine);\r
+ }\r
+ System.out.println("Fin du thread repondant au client, port "\r
+ + clientSocket.getPort());\r
+ }\r
+\r
+ public void broadcastMsg(String msg) {\r
+ for (int i = 0; i < listWriter.size(); i++) {\r
+ listWriter.get(i);\r
+ }\r
+\r
+ }\r
+\r
+}\r