package thrServ;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class ServeurMultiThread extends Thread {
private int Numero=0;
Socket socket = null;
InputStreamReader inpStrReader = null;
OutputStreamWriter outStrWriter =null;
BufferedReader buffReader = null;
BufferedWriter buffWriter = null;
ServerSocket servSocket =null;
public void run() {
try {
servSocket = new ServerSocket(1235);
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();}
} // RUN Serveur Multi Thread
///////////////////////////////////
public static void main(String[] args) {
ServeurMultiThread S1= new ServeurMultiThread();
S1.start();
} // Main Serveur Multi Thread
} // Class
package thrServ;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class Echange extends Thread {
public Socket sClient;
private int numClient;
public Echange(Socket socketClient,int monNumero) {
super();
this.sClient=socketClient;
this.numClient=monNumero;
}
InputStreamReader inpStrReader=null;
BufferedReader buffReader=null;
OutputStreamWriter outStrWriter=null;
BufferedWriter buffWriter=null;
public void run() {
try {
inpStrReader = new InputStreamReader(sClient.getInputStream());
buffReader =new BufferedReader(inpStrReader);
outStrWriter = new OutputStreamWriter(sClient.getOutputStream());
buffWriter = new BufferedWriter(outStrWriter);
String msgFromClient;
while(true) {
msgFromClient = buffReader.readLine();
System.out.println("Client Numero("+numClient + ") sent : "+msgFromClient);
buffWriter.write("Message Recu :"+msgFromClient);
buffWriter.newLine();
buffWriter.flush();
if(msgFromClient.equalsIgnoreCase("Fin") ) {
System.out.println("Fin du Client["+numClient+"]");
break; }
} // WHILE
sClient.close();
inpStrReader.close();
outStrWriter.close();
buffReader.close();
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;
public class Client {
public static void main(String[] args) throws InterruptedException {
Socket socket = null;
InputStreamReader inpStrReader = null;
OutputStreamWriter outStrWriter =null;
BufferedReader buffReader = null;
BufferedWriter buffWriter = null;
try {
socket = new Socket("localhost",1235);
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();
int nbrToSend=0;
if( !msgToSend.equalsIgnoreCase("FIN") )
{
nbrToSend= Integer.parseInt(msgToSend);
for(int i=0;i<nbrToSend;i++) {
Thread.sleep(1000);
buffWriter.write(String.valueOf(i));
buffWriter.newLine();
buffWriter.flush();
System.out.println("Reponse Serveur :"+ buffReader.readLine());
}
}
else { buffWriter.write(msgToSend);
buffWriter.newLine();
buffWriter.flush();
Clavier.close();
break;}
}// 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