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;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.*;
import java.net.Socket;
public class ClientHandlerBytes implements ClientHandler, Runnable {
public class ClientHandlerBytes implements ClientHandler {
private Socket socket;
@@ -16,31 +12,27 @@ public class ClientHandlerBytes implements ClientHandler, Runnable {
}
public void handle() {
//Lecture du message dans un buffer de bytes
//Envoie du buffer de bytes.
try {
InputStream inStream = socket.getInputStream();
//Lecture du message dans un buffer de bytes
InputStream inStream = socket.getInputStream();
byte[] buffer = new byte[8];
inStream.read(buffer);
String message = new String(buffer);
System.out.println("client reçu : " + message);
OutputStream outStream = socket.getOutputStream();
outStream.write(buffer);
//Envoie du buffer de bytes.
OutputStream out = socket.getOutputStream();
out.write(buffer);
System.out.println("client envoie : " + message);
} catch (Exception e) {
System.out.println(e);
}
}
@Override
public void run() {
while(!this.socket.isClosed()){
handle();
}catch (IOException e){
System.out.println(e.getMessage());
} finally {
try {
socket.close();
}catch (IOException e){
System.out.println(e.getMessage());
}
}
}
}

View File

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