diff --git a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java index 81026c1fb961451aa921de4acdff401e3c656804..209c5f0e949abec22a8d3290ba01d6f99fd8e9da 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 393e01bb6c6ef7ecec8b3a3ecb534d7e3234bce8..65665abe5c473692e8a570a56ad26a8fd005577c 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();