From e0cfc6b30f1247631572643f6aa63f0973b83c62 Mon Sep 17 00:00:00 2001 From: PhilippL <philipp.lachowski@tu-dortmund.de> Date: Wed, 7 Dec 2022 12:01:59 +0100 Subject: [PATCH 1/5] Erschaffung von Grundstruktur auf der CLient Seite (Client.java + Main.java). Inputzeug --- .../ClientAnwendung/ClientAnwendung.iml | 3 +- .../src/heimaufgaben/Client.java | 34 ++++++++++++++++++- .../src/heimaufgaben/Main.java | 19 ++++++++--- .../ServerAnwendung/ServerAnwendung.iml | 3 +- 4 files changed, 49 insertions(+), 10 deletions(-) diff --git a/AufgabenStuff/ClientAnwendung/ClientAnwendung.iml b/AufgabenStuff/ClientAnwendung/ClientAnwendung.iml index d5c0743..c90834f 100644 --- a/AufgabenStuff/ClientAnwendung/ClientAnwendung.iml +++ b/AufgabenStuff/ClientAnwendung/ClientAnwendung.iml @@ -8,5 +8,4 @@ <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> </component> -</module> - +</module> \ No newline at end of file diff --git a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java index d2a2f56..60524b3 100644 --- a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java +++ b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java @@ -8,5 +8,37 @@ import java.util.*; import java.text.*; public class Client { - + private Socket clientSocket; + BufferedWriter zumServer; + BufferedReader vomServer; + public Client(String ip, int port) throws IOException{ + if(!ip.equals("127.0.0.1")){ // Wenn falsche IP eingegeben wird + if(!ip.equals("localhost")) + { + System.err.println("Falsche IP!"); + return; + } + } + if(port != 2022){ + System.err.println("Falscher Port!"); + return; + } + + try { // Verbindungsversuch + clientSocket = new Socket(ip, port); + } catch (IOException e) { + System.err.println("Fehler bei clientSocket-Erstellung(IOException)"); + return; + } + + try { // Erschaffung von Kommunikationsverbindung + zumServer = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream())); + vomServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); + } catch (IOException e) { + System.err.println("Problem beim Bufferedwriter(IO Exception)"); + return; + } + } + + //public void Ping } diff --git a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Main.java b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Main.java index 4f5169f..741afce 100644 --- a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Main.java +++ b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Main.java @@ -7,13 +7,22 @@ import java.security.*; import java.util.*; import java.text.*; - - public class Main { - public static void main(String[] args) { - Client client = new Client(); - + public static void main(String[] args) throws IOException { + BufferedReader info = new BufferedReader(new InputStreamReader(System.in)); //Eingabe von IP und Port + System.out.println("IP-Adresse?"); + String zeile1 = info.readLine(); + System.out.println("Port?"); + String zeile2alt = info.readLine(); + int zeile2 = -1; + try{ // Port muss vom String zum Int werden + zeile2 = Integer.parseInt(zeile2alt); + } catch (NumberFormatException e) { + System.err.println("Der Port ist keine Zahl!"); + System.out.println("Der Client wurde beendet."); + } + Client client = new Client(zeile1,zeile2); // Client wird erschaffen mit übergebenen Parametern System.out.println("Der Client wurde beendet."); } } diff --git a/AufgabenStuff/ServerAnwendung/ServerAnwendung.iml b/AufgabenStuff/ServerAnwendung/ServerAnwendung.iml index d5c0743..c90834f 100644 --- a/AufgabenStuff/ServerAnwendung/ServerAnwendung.iml +++ b/AufgabenStuff/ServerAnwendung/ServerAnwendung.iml @@ -8,5 +8,4 @@ <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> </component> -</module> - +</module> \ No newline at end of file -- GitLab From accbe494f79fb2f621d1ea8bc099aecbf1883ee9 Mon Sep 17 00:00:00 2001 From: PhilippL <philipp.lachowski@tu-dortmund.de> Date: Wed, 7 Dec 2022 19:05:17 +0100 Subject: [PATCH 2/5] Korrektur Code aus Main zu Client MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hinzufügen der Methoden Ping und Echo (Noch keine Aktivierung dafür implemetiert) --- .../src/heimaufgaben/Client.java | 40 +++++++++++++++++-- .../src/heimaufgaben/Main.java | 17 ++------ 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java index 60524b3..6651999 100644 --- a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java +++ b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java @@ -8,10 +8,24 @@ import java.util.*; import java.text.*; public class Client { + private String ip = ""; + private int port = -1; private Socket clientSocket; - BufferedWriter zumServer; - BufferedReader vomServer; - public Client(String ip, int port) throws IOException{ + private BufferedWriter zumServer; + private BufferedReader vomServer; + public Client() throws IOException{ + BufferedReader info = new BufferedReader(new InputStreamReader(System.in)); //Eingabe von IP und Port + System.out.println("IP-Adresse?"); + ip = info.readLine(); + System.out.println("Port?"); + String portFragezeichen = info.readLine(); // Port ist vorerst String + info.close(); + try{ // Port muss vom String zum Int werden + port = Integer.parseInt(portFragezeichen); + } catch (NumberFormatException e) { // Falls er keine Zahl ist + System.err.println("Der Port ist keine Zahl!"); + return; + } if(!ip.equals("127.0.0.1")){ // Wenn falsche IP eingegeben wird if(!ip.equals("localhost")) { @@ -40,5 +54,23 @@ public class Client { } } - //public void Ping + private void Ping() throws IOException{ + try { + zumServer.write("Ping"); + System.out.println(vomServer.readLine()); // Gibt Antwort des Servers direkt aus + } catch (IOException e) { + System.err.println("Probleme bei void Ping() (IOException)"); + return; + } + } + + private void Echo(String eingabe) throws IOException{ + try { + zumServer.write(eingabe); // Ganze Botschaft samt ECHO an Server geben + System.out.println(vomServer.readLine().substring(5)); // Der Client muss "ECHO " entfernen + } catch (IOException e) { + System.err.println("Probleme bei void Echo() (IOException)"); + return; + } + } } diff --git a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Main.java b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Main.java index 741afce..45b7469 100644 --- a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Main.java +++ b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Main.java @@ -9,20 +9,9 @@ import java.text.*; public class Main { public static void main(String[] args) throws IOException { - BufferedReader info = new BufferedReader(new InputStreamReader(System.in)); //Eingabe von IP und Port - System.out.println("IP-Adresse?"); - String zeile1 = info.readLine(); - System.out.println("Port?"); - String zeile2alt = info.readLine(); - int zeile2 = -1; - try{ // Port muss vom String zum Int werden - zeile2 = Integer.parseInt(zeile2alt); - } catch (NumberFormatException e) { - System.err.println("Der Port ist keine Zahl!"); - System.out.println("Der Client wurde beendet."); - } - - Client client = new Client(zeile1,zeile2); // Client wird erschaffen mit übergebenen Parametern + //Client client = new Client(); System.out.println("Der Client wurde beendet."); + String test = "ECHO Guten Tag wie geht es Ihnen"; + System.out.println(test.substring(5)); } } -- GitLab From 2495837df4ce3cb31873000dbd78b5785bf37791 Mon Sep 17 00:00:00 2001 From: PhilippL <philipp.lachowski@tu-dortmund.de> Date: Wed, 7 Dec 2022 19:24:41 +0100 Subject: [PATCH 3/5] Methoden Time, Date, kuerzen und close sind da. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Close muss überarbeitet werden, ebenso der lange constructor der variabel auf Eingaben reagieren muss. Viel getestet kann nur mit funktionierendem Server werden! --- .../src/heimaufgaben/Client.java | 40 +++++++++++++++++-- .../src/heimaufgaben/Main.java | 4 +- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java index 6651999..89861b4 100644 --- a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java +++ b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java @@ -54,9 +54,9 @@ public class Client { } } - private void Ping() throws IOException{ + private void ping() throws IOException{ try { - zumServer.write("Ping"); + zumServer.write("PING"); System.out.println(vomServer.readLine()); // Gibt Antwort des Servers direkt aus } catch (IOException e) { System.err.println("Probleme bei void Ping() (IOException)"); @@ -64,13 +64,45 @@ public class Client { } } - private void Echo(String eingabe) throws IOException{ + private void echo(String eingabe) throws IOException{ try { zumServer.write(eingabe); // Ganze Botschaft samt ECHO an Server geben - System.out.println(vomServer.readLine().substring(5)); // Der Client muss "ECHO " entfernen + System.out.println(kuerzen(vomServer.readLine())); // Entfernen von "ECHO " } catch (IOException e) { System.err.println("Probleme bei void Echo() (IOException)"); return; } } + + private void time() throws IOException{ + try { + zumServer.write("CURRENT TIME"); + System.out.println(kuerzen(vomServer.readLine())); // Entfernen von "TIME " + } catch (IOException e) { + System.err.println("Probleme bei void Time() (IOException)"); + return; + } + } + + private void date() throws IOException{ + try { + zumServer.write("CURRENT DATE"); + System.out.println(kuerzen(vomServer.readLine())); // Entfernen von "DATE " + } catch (IOException e) { + System.err.println("Probleme bei void Date() (IOException)"); + return; + } + } + + private String kuerzen(String eingabe) // Kürzen der ersten 5 Buchstaben, gebraucht für ECHO, TIME, DATE + { + return eingabe.substring(5); + } + private void close() throws IOException { + try { + clientSocket.close(); + } catch (IOException e) { + System.err.println("Probleme bei close() (IOException)"); + } + } } diff --git a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Main.java b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Main.java index 45b7469..6f55231 100644 --- a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Main.java +++ b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Main.java @@ -9,9 +9,7 @@ import java.text.*; public class Main { public static void main(String[] args) throws IOException { - //Client client = new Client(); + Client client = new Client(); System.out.println("Der Client wurde beendet."); - String test = "ECHO Guten Tag wie geht es Ihnen"; - System.out.println(test.substring(5)); } } -- GitLab From 84f4bccf8346236eab3739b2f87d46902dbabd9c Mon Sep 17 00:00:00 2001 From: PhilippL <philipp.lachowski@tu-dortmund.de> Date: Thu, 8 Dec 2022 09:08:49 +0100 Subject: [PATCH 4/5] =?UTF-8?q?Methode=20close=20entfernt,=20nicht=20n?= =?UTF-8?q?=C3=B6tig.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Eingabe wird gelesen und methoden werden Aufgerufen, Client sollte fertig sein. Kann ohne Server nicht getestet werden! --- .../src/heimaufgaben/Client.java | 60 ++++++++++++++----- 1 file changed, 44 insertions(+), 16 deletions(-) diff --git a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java index 89861b4..e2e9911 100644 --- a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java +++ b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java @@ -14,19 +14,25 @@ public class Client { private BufferedWriter zumServer; private BufferedReader vomServer; public Client() throws IOException{ - BufferedReader info = new BufferedReader(new InputStreamReader(System.in)); //Eingabe von IP und Port + + // Eingaben müssen aufgenommen werden: + BufferedReader info = new BufferedReader(new InputStreamReader(System.in)); //Eingabe von IP und Port, später Methodenaufrufe System.out.println("IP-Adresse?"); ip = info.readLine(); System.out.println("Port?"); String portFragezeichen = info.readLine(); // Port ist vorerst String info.close(); - try{ // Port muss vom String zum Int werden + + // Port muss vom String zum Int werden: + try{ port = Integer.parseInt(portFragezeichen); } catch (NumberFormatException e) { // Falls er keine Zahl ist System.err.println("Der Port ist keine Zahl!"); return; } - if(!ip.equals("127.0.0.1")){ // Wenn falsche IP eingegeben wird + + // Wenn falsche IP oder port eingegeben wird: + if(!ip.equals("127.0.0.1")){ if(!ip.equals("localhost")) { System.err.println("Falsche IP!"); @@ -38,22 +44,48 @@ public class Client { return; } - try { // Verbindungsversuch + // Verbindungsversuch: + try { clientSocket = new Socket(ip, port); } catch (IOException e) { - System.err.println("Fehler bei clientSocket-Erstellung(IOException)"); + System.err.println("Fehler bei clientSocket-Erstellung(IOException)\n-> Läuft der Server?"); return; } - try { // Erschaffung von Kommunikationsverbindung + // Erschaffung von Kommunikationsverbindung: + try { zumServer = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream())); vomServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); } catch (IOException e) { - System.err.println("Problem beim Bufferedwriter(IO Exception)"); + System.err.println("Problem beim Bufferedwriter(IOException)"); return; } + + // Eingaben werden aufgenommen und bearbeitet bis "close": + System.out.println("Verbindung hergestellt, erwarte Auftrag:"); + while(true) + { + String eingabe = info.readLine(); + if(eingabe.equalsIgnoreCase("close")){ + break; + } + else if(eingabe.equalsIgnoreCase("ping")){ + ping(); + } + else if(eingabe.substring(0,4).equalsIgnoreCase("echo")){ + echo(eingabe); + } + else if(eingabe.substring(0,4).equalsIgnoreCase("time")){ + time(); + } + else if(eingabe.substring(0,4).equalsIgnoreCase("date")){ + date(); + } + } + // "close" -> While schleife endet, constructor endet, client ist beendet } + // Aufruf "ping": private void ping() throws IOException{ try { zumServer.write("PING"); @@ -64,6 +96,7 @@ public class Client { } } + // Aufruf "echo": private void echo(String eingabe) throws IOException{ try { zumServer.write(eingabe); // Ganze Botschaft samt ECHO an Server geben @@ -74,6 +107,7 @@ public class Client { } } + // Aufruf "time": private void time() throws IOException{ try { zumServer.write("CURRENT TIME"); @@ -84,6 +118,7 @@ public class Client { } } + // Aufruf "date": private void date() throws IOException{ try { zumServer.write("CURRENT DATE"); @@ -94,15 +129,8 @@ public class Client { } } - private String kuerzen(String eingabe) // Kürzen der ersten 5 Buchstaben, gebraucht für ECHO, TIME, DATE - { + // Kürzen der ersten 5 Buchstaben, gebraucht für ECHO, TIME, DATE: + private String kuerzen(String eingabe) { return eingabe.substring(5); } - private void close() throws IOException { - try { - clientSocket.close(); - } catch (IOException e) { - System.err.println("Probleme bei close() (IOException)"); - } - } } -- GitLab From 9265e2f3689f5020faa5d71ba16277d5d3aed733 Mon Sep 17 00:00:00 2001 From: PhilippL <philipp.lachowski@tu-dortmund.de> Date: Thu, 8 Dec 2022 09:51:53 +0100 Subject: [PATCH 5/5] Kleine Fehlerkorrektur, 4.1 rdy --- .../ClientAnwendung/src/heimaufgaben/Client.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java index e2e9911..e1e46ee 100644 --- a/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java +++ b/AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java @@ -75,10 +75,10 @@ public class Client { else if(eingabe.substring(0,4).equalsIgnoreCase("echo")){ echo(eingabe); } - else if(eingabe.substring(0,4).equalsIgnoreCase("time")){ + else if(eingabe.equalsIgnoreCase("current time")){ time(); } - else if(eingabe.substring(0,4).equalsIgnoreCase("date")){ + else if(eingabe.equalsIgnoreCase("current date")){ date(); } } @@ -107,7 +107,7 @@ public class Client { } } - // Aufruf "time": + // Aufruf "current time": private void time() throws IOException{ try { zumServer.write("CURRENT TIME"); @@ -118,7 +118,7 @@ public class Client { } } - // Aufruf "date": + // Aufruf "current date": private void date() throws IOException{ try { zumServer.write("CURRENT DATE"); -- GitLab