Skip to content
Snippets Groups Projects
Commit c8c01e75 authored by mateis00's avatar mateis00
Browse files

Inhaltsverzeichnis für Methods + Klare trennungen

parent 18009037
No related branches found
No related tags found
2 merge requests!3Ich checke nicht, warum der In und Output nicht funktioniert.,!2Inhaltsverzeichnis für Methods + Klare trennungen
Dokumentation
=============
Inhalt:
Client
1.Info abfrage
2.Erstellung von Sockets
3.Warte auf Befehleingabe
4.Befehle
Server
5.Bereitstellung von Socket
6.Porteingabe
7.Server initialisierung
8.Server Funktionen
8.1 Ping
8.2 Echo
8.3 Current
8.4 History
8.5 Exit
Client:
1.
Der Client fragt über einen Bufferedreader "info" zuerst Ip-Adresse und Port ab.
Bei falschen Infos wird er beendet.
2.
Nachdem der clientSocket erstellt wurde versucht der Client eine Kommunikationsverbindung mit
BufferedWriter "zumServer"und BufferedReader "vomServer" herzustellen.
3.
Solange der clientSocket connected ist hört der Client dann auf Eingaben.
Jede Eingabe des Clients wird nun an den Server geschickt und die Antworten des Servers werden abgeglichen.
Die Antworten EXIT ECHO TIME DATE und ERROR sind die besonderen Ausgaben. Bei den letzten vier werden genau
diese Worte vom Anfang der Servernachricht abgetrennt und der Rest wird ausgegeben.
EXIT beendet den Client indem der Bufferedreader "info" und der clientSocket geschlossen werden.
Bei allen anderen Serverausgaben wie zum Beispiel "PONG" oder der beim Verlauf,
4.
Die Antworten EXIT, ECHO, TIME DATE und ERROR sind die besonderen Ausgaben.
Bei den letzten vier werden genau diese Worte vom Anfang der Servernachricht abgetrennt und der Rest wird ausgegeben.
EXIT beendet den Client indem der Bufferedreader "info" und der clientSocket geschlossen werden.
Bei allen anderen Serverausgaben wie zum Beispiel "PONG" oder der beim "HISTORY",
wird die Nachricht unverändert ausgegeben.
Server:
Der Server funktioniert anders. Sobald sich ein Client disconnected ist der Server bereit,
5.
Der Server funktioniert anders. Er stellt den Socket bereit und sobald sich ein Client disconnected ist der Server bereit,
eine neue Verbindung herzustellen.
6.
So setzt der Server beim starten von void neuerServer() den boolean "runs" auf true, sodass erstmal
nichts weiter passiert während der Server läuft. Dieser wird auch nur erstellt, falls der richtige Port
im BufferedReader prt eingegeben wird.
im BufferedReader "prt" eingegeben wird.
7.
In neuerServer() wird der Server erstellt. Ein ServerSocket mit dem richtigen Port wird erstellt und
wartet auf den Client. In dem Socket "serverSocket" (Nicht verwechseln mit dem ServerSocket "tempSocket")
wird dann die Verbindung mit accept() hergestellt.
wird dann die Verbindung mit dem Client durch den Befehl ".accept()" hergestellt.
Sobald das passiert wird wie beim Client ein BufferedWriter und ein Reader für Out- und Input deklariert und
initialisiert.
......@@ -40,11 +66,21 @@ Solange boolean abbruch false ist, wird die while-Schleife nicht abgebrochen und
Jede Eingabe vom Client wird erstmal aufgenomen, ausgegeben und im Verlauf gespeichert.
Nun wird sie mit allen möglichen Eingaben verglichen.
Eingabe Ping liefert PONG zurück, Echo schickt die Eingabe direkt zurück. Current Time und Current Date erstellen
mit der Klasse SimpleDateFormat jeweils eine Antwort mit der Uhrzeit und mit dem Datum.
8.1
Erwartet "PING" vom Client und sendet "PONG" zurück.
8.2
Empfängt eine Nachricht mit "ECHO" als erstes Wort und schickt die Empfangene Nachricht direkt zurück
8.3
Current erwartet entweder ein folgendes "TIME" oder "DATE" und gibt die ServerZeit zum Zeitpunkt der Anfrage
entweder als Uhrzeit (Format: hh:mm:ss) oder Datum (Format: dd.MM.yyyy) zurück.
Formatiert wird mit der Klasse SimpleDateFormat.
8.4
Die Eingabe History unterscheidet zwischen "history" und "history int".
history iteriert einfach durch den gesamten Verlauf, speichert diesen im String "ausg" und schickt diesen dann
history iteriert einfach durch den gesamten Verlauf von der ArrayList, speichert diesen im String "ausg" und schickt diesen dann
an den Client.
history int macht das gleiche, falls der Integer über der Anzahl an Elementen im Verlauf liegt.
Jener Integer wird isoliert, indem der String ab Stelle 9 in einen Int umgewandelt wird (Falls möglich natürlich).
......@@ -52,6 +88,7 @@ Bei etwas anderem als einem Int wird die interne fehler-boolean-Variable in dies
damit diese nicht weiter versucht damit zu arbeiten.
Falls die Zahl negativ ist wird auch ein Fehler ausgegeben.
8.5
Die Eingabe Exit setzt die abbruch-Variable auf true und runs auf false, sodass nach Beendigung des Servers im
Konstruktor ein neuer erstellt wird.
Zuvor antwortet der Server jedoch noch dem Client und bestätigt das Exit und schließt den serverSocket.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment