Fix server echo
This commit is contained in:
@@ -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,31 +12,27 @@ 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 {
|
||||||
InputStream inStream = socket.getInputStream();
|
//Lecture du message dans un buffer de bytes
|
||||||
|
InputStream inStream = socket.getInputStream();
|
||||||
|
|
||||||
byte[] buffer = new byte[8];
|
byte[] buffer = new byte[8];
|
||||||
inStream.read(buffer);
|
inStream.read(buffer);
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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");
|
/* 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();
|
Socket socket = serverSocket.accept();
|
||||||
//ClientHandler clientHandler= new ClientHandler(serverSocket,num_de_client);
|
ClientHandler clientHandler= new ClientHandlerBytes(socket);
|
||||||
executorService.submit(new ClientHandlerBytes(socket));
|
clientHandler.handle();
|
||||||
/* Pour chaque client :
|
socket.close();
|
||||||
1. accepter la connexion.
|
|
||||||
2. créer un ClientHandler
|
|
||||||
3. appeler la méthode handleBytes() sur le handler
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}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();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user