Sockets MultiThread LIste Clients (BufferReaderWriter)
Sockets MultiThread LIste Clients (BufferReaderWriter)
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
try {
servSocket = new ServerSocket(1238);
System.out.println("Ecoute sur le Port ...");
while(true) {
System.out.println("En Attente de Nouveaux Clients");
socket=servSocket.accept();
++Numero;
System.out.println("Client [" +Numero+ "] Connecté");
Echange ech=new Echange(socket,Numero);
ech.start();
}
} catch (IOException e) {e.printStackTrace();}
String msgFromClient;
String toSend, Message;
while(true) {
toSend=ServeurMultiThread.PrintListeClients(ServeurMultiThread.listeClientsConnectes);
msgFromClient = buffReader.readLine();
System.out.println("Client("+numClient +") sent : "+msgFromClient);
toSend=ServeurMultiThread.PrintListeClients(ServeurMultiThread.listeClientsConnectes);
if(msgFromClient.equalsIgnoreCase("Fin") ) {
System.out.println("Fin du Client["+numClient+"]");
ServeurMultiThread.removeClientListe(this.numClient);
listeActuelle=ServeurMultiThread.PrintListeClients(ServeurMultiThread.listeClientsConnectes);
System.out.println("Current Clients :"+listeActuelle);
break;
}
else {
if(!msgFromClient.equals("L")) Message="Message :"+msgFromClient+"du Client
("+numClient+")";
else Message="LISTE:"+toSend.toString()+"Envoyée au Client"+this.numClient;
buffWriter.write(Message);
buffWriter.newLine();
buffWriter.flush();
}
}// WHILE
} catch (IOException e) { e.printStackTrace(); }
finally {
try{ if(sClient!=null) sClient.close(); if(inpStrReader!=null) inpStrReader.close();
if(buffReader!=null) buffReader.close(); if(outStrWriter!=null) outStrWriter.close();
if(buffWriter!=null) buffWriter.close(); } catch(IOException e) {e.printStackTrace();}
}
} // RUN
} // class
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.util.Scanner;
try {
socket = new Socket("localhost",1238);
inpStrReader=new InputStreamReader(socket.getInputStream());
buffReader = new BufferedReader(inpStrReader);
outStrWriter = new OutputStreamWriter(socket.getOutputStream());
buffWriter = new BufferedWriter(outStrWriter);
Scanner Clavier = new Scanner(System.in);
String msgToSend;
while(true) {
msgToSend=Clavier.nextLine();
System.out.println("J'ai Envoye"+msgToSend);
int nbrToSend=0;
if(msgToSend.equalsIgnoreCase("FIN")||msgToSend.equalsIgnoreCase("L"))
{
buffWriter.write(msgToSend);
buffWriter.newLine();
buffWriter.flush();
if(msgToSend.equalsIgnoreCase("FIN")) {Clavier.close();break;}
else System.out.println("(Réponse du L --> "+buffReader.readLine());
}
else{
nbrToSend= Integer.parseInt(msgToSend);
for(int i=0;i<nbrToSend;i++) {
Thread.sleep(500);
buffWriter.write(String.valueOf(i));
buffWriter.newLine();
buffWriter.flush();
System.out.println("Reponse Serveur :"+buffReader.readLine());
}
}
}// WHILE TRUE
} catch(IOException e) {e.printStackTrace();}
finally {
try{
if(socket!=null) socket.close();
if(inpStrReader!=null) inpStrReader.close();
if(buffReader!=null) buffReader.close();
if(outStrWriter!=null) outStrWriter.close();
if(buffWriter!=null) buffWriter.close();
} catch(IOException e) {e.printStackTrace();}
}
}// MAIN
}// Class