Fix server echo
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user