-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathClientHandler.java
77 lines (61 loc) · 2.07 KB
/
ClientHandler.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import ea.*;
/**
* Der ClientHandler kümmert sich <b>für den Server</b> um einen
* einzelnen Client, der an diesem Server anliegt.
*
* @author Michael Andonie
*/
public class ClientHandler
implements Empfaenger {
/**
* Die Netzwerkverbindung, über die der Handler nachrichten senden und empfangen kann.
*/
private NetzwerkVerbindung verbindung;
/**
* Der Name des Client, um den sich dieser Handler kümmert.
*/
private String clientname = "";
public ClientHandler(NetzwerkVerbindung verbindung) {
this.verbindung = verbindung;
//Dieses Objekt als Empfänger an der Verbindung melden
verbindung.empfaengerHinzufuegen(this);
}
/* --- Empfaenger-Methoden --- */
@Override
public void empfangeString (String string) {
System.out.println("[Server hat empfangen:] " + string);
if(string.startsWith("Hallo, ich bin ")) {
//Client stellt sich vor => Namen übernehmen
//Der neue Clientname ist das, was nach "Hallo, ich bin " kommt.
this.clientname = string.substring(15);
//Zurückgrüßen
verbindung.sendeString("Hallo " + clientname
+ ", schön dich kennenzulernen. Ich kümmere mich heute nur um dich.");
}
if(string.startsWith("Was ist die Antwort?")) {
//Der Client hat eine Frage. Besser schnell was ausdenken.
verbindung.sendeString("Nun " + clientname +", ich schätze die Antwort ist 42.");
}
}
@Override
public void verbindungBeendet () {
//
}
// Info: Diese Methoden müssen implementiert werden.
// Sie bleiben leer, da sie hier nicht verwendet werden.
@Override
public void empfangeInt (int i) {
}
@Override
public void empfangeByte (byte b) {
}
@Override
public void empfangeDouble (double d) {
}
@Override
public void empfangeChar (char c) {
}
@Override
public void empfangeBoolean (boolean b) {
}
}