Fix server echo

This commit is contained in:
Minh VU
2025-02-03 13:29:42 +01:00
parent e6635fd16b
commit 0039f3401c
2 changed files with 31 additions and 61 deletions

View File

@@ -1,13 +1,9 @@
package fr.istic.pr.echo; package fr.istic.pr.echo;
import java.io.InputStream; import java.io.*;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
public class ClientHandlerBytes implements ClientHandler, Runnable { public class ClientHandlerBytes implements ClientHandler {
private Socket socket; private Socket socket;
@@ -16,10 +12,8 @@ public class ClientHandlerBytes implements ClientHandler, Runnable {
} }
public void handle() { public void handle() {
//Lecture du message dans un buffer de bytes
//Envoie du buffer de bytes.
try { try {
//Lecture du message dans un buffer de bytes
InputStream inStream = socket.getInputStream(); InputStream inStream = socket.getInputStream();
byte[] buffer = new byte[8]; byte[] buffer = new byte[8];
@@ -27,20 +21,18 @@ public class ClientHandlerBytes implements ClientHandler, Runnable {
String message = new String(buffer); String message = new String(buffer);
System.out.println("client reçu : " + message); System.out.println("client reçu : " + message);
OutputStream outStream = socket.getOutputStream(); //Envoie du buffer de bytes.
OutputStream out = socket.getOutputStream();
outStream.write(buffer); out.write(buffer);
System.out.println("client envoie : " + message); System.out.println("client envoie : " + message);
}catch (IOException e){
} catch (Exception e) { System.out.println(e.getMessage());
System.out.println(e); } finally {
} try {
} socket.close();
}catch (IOException e){
@Override System.out.println(e.getMessage());
public void run() { }
while(!this.socket.isClosed()){
handle();
} }
} }
} }

View File

@@ -1,53 +1,31 @@
package fr.istic.pr.echo; package fr.istic.pr.echo;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket; import java.net.ServerSocket;
import java.net.Socket; import java.net.Socket;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
//import static jdk.internal.org.jline.utils.Colors.s; class echoServer {
public static void main(String[] args) throws IOException{
public class EchoServer {
private static ExecutorService executorService = Executors.newFixedThreadPool(10);
private ServerSocket serverSocket;
private static EchoServer echoServer;
private void run_Serveur() throws IOException {
//Attente sur le port 8080s //Attente sur le port 8080s
//int num_de_client=1; int portDuServer = 8080;
int portDuServeur= 8080; ServerSocket serverSocket = new ServerSocket(portDuServer);
ServerSocket serverSocket = new ServerSocket(portDuServeur);
try{ try{
while(true){ while(true){
System.out.println("Coucou");
Socket socket = serverSocket.accept();
//ClientHandler clientHandler= new ClientHandler(serverSocket,num_de_client);
executorService.submit(new ClientHandlerBytes(socket));
/* Pour chaque client : /* Pour chaque client :
1. accepter la connexion. 1. accepter la connexion.
2. créer un ClientHandler 2. créer un ClientHandler
3. appeler la méthode handleBytes() sur le handler 3. appeler la méthode handleBytes() sur le handler
*/ */
Socket socket = serverSocket.accept();
ClientHandler clientHandler= new ClientHandlerBytes(socket);
clientHandler.handle();
socket.close();
} }
}catch(Exception e){ }catch(Exception e){
e.printStackTrace(); System.out.println(e.getMessage());
} }
} }
private void arret_Serveur(){
executorService.shutdownNow();
try{
serverSocket.close();
}catch (Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
echoServer= new EchoServer();
echoServer.run_Serveur();
}
} }