From e6e652129b4f1288b9c7fc625d41d947a0041579 Mon Sep 17 00:00:00 2001 From: philipp023_ <Philipp.Lachowski@tu-dortmund.de> Date: Sun, 11 Dec 2022 10:50:08 +0100 Subject: [PATCH] Alles geht, Fehlermeldungen sind auch weitestgehend richtig --- .../src/heimaufgaben/Client.java | 4 +-- .../src/heimaufgaben/Server.java | 26 ++++++++++++------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java index 81026c1..209c5f0 100644 --- a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java +++ b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java @@ -77,9 +77,9 @@ public class Client { } if (ausgabe.equals("EXIT")) { System.out.println(ausgabe); - info.close(); + info.close(); // Exit beendet alle Schnittstellen mit Server clientSocket.close(); - break; + break; // Abbruch des while loops } else if (ausgabe.length()>3 && ausgabe.substring(0, 4).equals("ECHO")) { System.out.println(ausgabe.substring(5)); } else if (ausgabe.length()>3 && ausgabe.substring(0, 4).equals("TIME")) { diff --git a/AufgabenStuff/ServerAnwendung/src/heimaufgaben/Server.java b/AufgabenStuff/ServerAnwendung/src/heimaufgaben/Server.java index 393e01b..65665ab 100644 --- a/AufgabenStuff/ServerAnwendung/src/heimaufgaben/Server.java +++ b/AufgabenStuff/ServerAnwendung/src/heimaufgaben/Server.java @@ -101,39 +101,47 @@ public class Server{ } else if(eingabe.equalsIgnoreCase("history")) { String ausg = "Gesamter Verlauf: "; - for(int i=0; i<verlauf.size()-1; i++) { - ausg = ausg.concat(verlauf.get(i)+", "); + for(int i=0; i<verlauf.size()-1; i++) { // Die gesamte Arraylist wird ausgegeben + ausg = ausg.concat(verlauf.get(i)+", "); // String wird zusammen concatted } - ausg = ausg.concat(verlauf.get(verlauf.size()-1)+"\n"); + ausg = ausg.concat(verlauf.get(verlauf.size()-1)+"\n"); // Nach letztem Element kommt kein Komma, sondern \n zumClient.write(ausg); zumClient.flush(); } + else if(eingabe.length()>=4 && eingabe.substring(0,4).equalsIgnoreCase("echo")) { + zumClient.write(eingabe.substring(5)+"\n"); + zumClient.flush(); + } else if(eingabe.length()>=9 && eingabe.substring(0,7).equalsIgnoreCase("history")) { - int zahl = -1; + int zahl = 0; + boolean fehler = false; // Nach fehler = true soll er es nicht weiter versuchen und if abbrechen try{ zahl = Integer.parseInt(eingabe.substring(8,eingabe.length())); } catch (NumberFormatException e) { System.out.println("Der Client muss Zahlen hinter history schreiben smh"); zumClient.write("ERROR 400 BAD REQUEST\n"); // Bei falschem Aufruf + fehler = true; } - if (zahl>=verlauf.size()) { + if (zahl>=verlauf.size() && !fehler) { String ausg = "Gesamter Verlauf: "; - for(int i=0; i<verlauf.size()-1; i++) { + for(int i=0; i<verlauf.size()-1; i++) { // Gesamter Verlauf, da es zu wenige Elemente in Verlauf gibt ausg = ausg.concat(verlauf.get(i)+", "); } ausg = ausg.concat(verlauf.get(verlauf.size()-1)+"\n"); zumClient.write(ausg); } else { - if(zahl>0) { + if(zahl>=0 && !fehler) { String ausg = "Verlauf der letzten "+zahl+" Anfragen: "; - for(int i=verlauf.size()-zahl; i<verlauf.size(); i++) { + for(int i=verlauf.size()-zahl; i<verlauf.size()-1; i++) { // Verlauf ab size-zahl-1 bis size-1 ausg = ausg.concat(verlauf.get(i)+", "); } + ausg = ausg.concat(verlauf.get(verlauf.size()-1)+"\n"); // Nach letztem Element kein Komma, sondern \n zumClient.write(ausg); } else { - zumClient.write("Super witzig"); + + if (!fehler) zumClient.write("Super witzig\n"); // Falls Zahl negativ ist } } zumClient.flush(); -- GitLab