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