From b51594f83a116825f74cad646dceb9c3691f3502 Mon Sep 17 00:00:00 2001 From: Minh VU Date: Tue, 4 Feb 2025 14:40:18 +0100 Subject: [PATCH] Ajouter readme test image pour CR ok --- README.md | 11 ++++++++++- fichier_pour_CR/p1_ex2_bytes.pcapng | Bin 0 -> 118940 bytes fichier_pour_CR/p1_ex2_bytes.png | Bin 0 -> 13828 bytes src/main/java/fr/istic/pr/echo/EchoServer.java | 2 +- ...ClientHandler.java => ClientHandlerMT.java} | 2 +- .../java/fr/istic/pr/echomt/EchoServerMT.java | 4 ++++ 6 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 fichier_pour_CR/p1_ex2_bytes.pcapng create mode 100644 fichier_pour_CR/p1_ex2_bytes.png rename src/main/java/fr/istic/pr/echomt/{ClientHandler.java => ClientHandlerMT.java} (74%) create mode 100644 src/main/java/fr/istic/pr/echomt/EchoServerMT.java diff --git a/README.md b/README.md index 1d43c4b..9b47819 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,13 @@ -# Squelette du TP +# Rapport du TP 1 +Réalisé par Thibaut Rochas et Tuan Minh VU + +## Partie I: Le classique serveur Echo + +### EXERCICE 1 : Version séquentielle +voir le repo XD + +### EXERCICE 2 : Test et capture + ## Utilisation diff --git a/fichier_pour_CR/p1_ex2_bytes.pcapng b/fichier_pour_CR/p1_ex2_bytes.pcapng new file mode 100644 index 0000000000000000000000000000000000000000..53e2072a6cd378a2dc0ba5f10dc43f2e50912761 GIT binary patch literal 118940 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