Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
H
Heimaufgabe2
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RvS Programmierung
Heimaufgabe2
Commits
c8c01e75
Commit
c8c01e75
authored
2 years ago
by
mateis00
Browse files
Options
Downloads
Patches
Plain Diff
Inhaltsverzeichnis für Methods + Klare trennungen
parent
18009037
No related branches found
No related tags found
2 merge requests
!3
Ich checke nicht, warum der In und Output nicht funktioniert.
,
!2
Inhaltsverzeichnis für Methods + Klare trennungen
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
AufgabenStuff/Dokumentation.txt
+48
-11
48 additions, 11 deletions
AufgabenStuff/Dokumentation.txt
with
48 additions
and
11 deletions
AufgabenStuff/Dokumentation.txt
+
48
−
11
View file @
c8c01e75
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.
S
obald sich ein Client disconnected ist der Server bereit,
5.
Der Server funktioniert anders.
Er stellt den Socket bereit und s
obald 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.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment