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
526e6421
Commit
526e6421
authored
2 years ago
by
Philipp Lachowski
Browse files
Options
Downloads
Patches
Plain Diff
Weitestgehend fertig (ohne Http api stuff), History Zahl für viable Zahl geht noch nicht
parent
2199f38b
No related branches found
No related tags found
1 merge request
!3
Ich checke nicht, warum der In und Output nicht funktioniert.
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java
+6
-6
6 additions, 6 deletions
AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java
AufgabenStuff/ServerAnwendung/src/heimaufgaben/Server.java
+74
-6
74 additions, 6 deletions
AufgabenStuff/ServerAnwendung/src/heimaufgaben/Server.java
with
80 additions
and
12 deletions
AufgabenStuff/ClientAnwendung/src/heimaufgaben/Client.java
+
6
−
6
View file @
526e6421
...
...
@@ -80,16 +80,16 @@ public class Client {
info
.
close
();
clientSocket
.
close
();
break
;
}
else
if
(
ausgabe
.
equals
(
"PONG"
))
{
System
.
out
.
println
(
ausgabe
);
}
else
if
(
ausgabe
.
substring
(
0
,
4
).
equals
(
"ECHO"
))
{
}
else
if
(
ausgabe
.
length
()>
3
&&
ausgabe
.
substring
(
0
,
4
).
equals
(
"ECHO"
))
{
System
.
out
.
println
(
ausgabe
.
substring
(
5
));
}
else
if
(
ausgabe
.
substring
(
0
,
4
).
equals
(
"TIME"
))
{
}
else
if
(
ausgabe
.
length
()>
3
&&
ausgabe
.
substring
(
0
,
4
).
equals
(
"TIME"
))
{
System
.
out
.
println
(
ausgabe
.
substring
(
5
));
}
else
if
(
ausgabe
.
substring
(
0
,
4
).
equals
(
"DATE"
))
{
}
else
if
(
ausgabe
.
length
()>
3
&&
ausgabe
.
substring
(
0
,
4
).
equals
(
"DATE"
))
{
System
.
out
.
println
(
ausgabe
.
substring
(
5
));
}
else
if
(
ausgabe
.
substring
(
0
,
5
).
equals
(
"ERROR"
))
{
}
else
if
(
ausgabe
.
length
()>
4
&&
ausgabe
.
substring
(
0
,
5
).
equals
(
"ERROR"
))
{
System
.
out
.
println
(
ausgabe
.
substring
(
6
));
}
else
{
// Bei Ping, Verlauf etc:
System
.
out
.
println
(
ausgabe
);
}
}
}
...
...
This diff is collapsed.
Click to expand it.
AufgabenStuff/ServerAnwendung/src/heimaufgaben/Server.java
+
74
−
6
View file @
526e6421
...
...
@@ -38,17 +38,18 @@ public class Server{
Socket
serverSocket
=
null
;
BufferedWriter
zumClient
;
BufferedReader
vomClient
;
Linked
List
<
String
>
verlauf
;
Array
List
<
String
>
verlauf
;
try
{
ServerSocket
tempSocket
=
new
ServerSocket
(
2022
);
// Port wird festgelegt
System
.
out
.
println
(
"Warte auf Client..."
);
serverSocket
=
tempSocket
.
accept
();
// Sobald cleint sich verbindet, geht es weiter
System
.
out
.
println
(
"Client hat sich verbunden!"
);
tempSocket
.
close
();
}
catch
(
Exception
e
)
{
System
.
err
.
println
(
"Probleme bei Verbidnungsherstellung zum CLient"
);
return
;
}
verlauf
=
new
Linked
List
<
String
>();
verlauf
=
new
Array
List
<
String
>();
try
{
zumClient
=
new
BufferedWriter
(
new
OutputStreamWriter
(
serverSocket
.
getOutputStream
()));
vomClient
=
new
BufferedReader
(
new
InputStreamReader
(
serverSocket
.
getInputStream
()));
...
...
@@ -60,29 +61,96 @@ public class Server{
// Befehle Werden aufgenommen
System
.
out
.
println
(
"Erwarte Eingabe..."
);
boolean
abbruch
=
false
;
String
eingabe
=
""
;
while
(!
abbruch
)
{
String
eingabe
=
""
;
try
{
eingabe
=
vomClient
.
readLine
();
System
.
out
.
println
(
"Eingabe vom Client: "
+
eingabe
);
verlauf
.
add
(
eingabe
);
// Jede Anfrage wird sich gemerkt
}
catch
(
IOException
e
)
{
System
.
err
.
println
(
"Probleme beim Lesen der Client-Eingabe"
);
abbruch
=
true
;
try
{
zumClient
.
write
(
" 500 INTERNAL SERVER ERROR\n"
);
zumClient
.
flush
();
}
catch
(
IOException
f
)
{
System
.
err
.
println
(
"Zusätzlicher Fehler beim Fehler Report an Client"
);
}
}
try
{
// Jede mögliche Eingabe wird überprüft
// Jede mögliche Eingabe wird überprüft
try
{
if
(
eingabe
.
equalsIgnoreCase
(
"exit"
)){
abbruch
=
true
;
runs
=
false
;
// Server runned nicht mehr, zurück zum Konstruktor
zumClient
.
write
(
"EXIT\n"
);
zumClient
.
flush
();
System
.
out
.
println
(
"Der Server wird neugestartet"
);
serverSocket
.
close
();
}
if
(
eingabe
.
equalsIgnoreCase
(
"ping"
))
{
zumClient
.
write
(
"PONG"
);
else
if
(
eingabe
.
equalsIgnoreCase
(
"ping"
))
{
zumClient
.
write
(
"PONG
\n
"
);
zumClient
.
flush
();
}
else
if
(
eingabe
.
equalsIgnoreCase
(
"current time"
))
{
zumClient
.
write
(
"TIME "
+
new
SimpleDateFormat
(
"hh:mm:ss"
).
format
(
new
Date
())+
"\n"
);
zumClient
.
flush
();
}
else
if
(
eingabe
.
equalsIgnoreCase
(
"current date"
))
{
zumClient
.
write
(
"DATE "
+
new
SimpleDateFormat
(
"dd.MM.yyyy"
).
format
(
new
Date
())+
"\n"
);
zumClient
.
flush
();
}
else
if
(
eingabe
.
equalsIgnoreCase
(
"history"
))
{
String
ausg
=
"Gesamter Verlauf: "
;
for
(
int
i
=
0
;
i
<
verlauf
.
size
()-
1
;
i
++)
{
ausg
=
ausg
.
concat
(
verlauf
.
get
(
i
)+
", "
);
}
ausg
=
ausg
.
concat
(
verlauf
.
get
(
verlauf
.
size
()-
1
)+
"\n"
);
zumClient
.
write
(
ausg
);
zumClient
.
flush
();
}
else
if
(
eingabe
.
length
()>=
9
&&
eingabe
.
substring
(
0
,
7
).
equalsIgnoreCase
(
"history"
))
{
int
zahl
=
-
1
;
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
}
if
(
zahl
>=
verlauf
.
size
())
{
String
ausg
=
"Gesamter Verlauf: "
;
for
(
int
i
=
0
;
i
<
verlauf
.
size
()-
1
;
i
++)
{
ausg
=
ausg
.
concat
(
verlauf
.
get
(
i
)+
", "
);
}
ausg
=
ausg
.
concat
(
verlauf
.
get
(
verlauf
.
size
()-
1
)+
"\n"
);
zumClient
.
write
(
ausg
);
}
else
{
if
(
zahl
>
0
)
{
String
ausg
=
"Verlauf der letzten "
+
zahl
+
" Anfragen: "
;
for
(
int
i
=
verlauf
.
size
()-
zahl
;
i
<
verlauf
.
size
();
i
++)
{
ausg
=
ausg
.
concat
(
verlauf
.
get
(
i
)+
", "
);
}
zumClient
.
write
(
ausg
);
}
else
{
zumClient
.
write
(
"Super witzig"
);
}
}
zumClient
.
flush
();
}
else
{
zumClient
.
write
(
"ERROR 400 BAD REQUEST\n"
);
// Bei falschem Aufruf
zumClient
.
flush
();
}
}
catch
(
IOException
|
NullPointerException
e
)
{
System
.
err
.
println
(
"Fehler beim schreiben zum Client"
);
try
{
zumClient
.
write
(
"ERROR 500 INTERNAL SERVER ERROR\n"
);
zumClient
.
flush
();
}
catch
(
IOException
f
)
{
System
.
err
.
println
(
"Zusätzlicher Fehler beim Fehler Report an Client"
);
}
abbruch
=
true
;
runs
=
false
;
}
...
...
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