-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathDateServer.java
More file actions
68 lines (46 loc) · 2.37 KB
/
DateServer.java
File metadata and controls
68 lines (46 loc) · 2.37 KB
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
package ch.ibw.clientServer.server.dateReply;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* A simple TCP server. When a client connects, it sends the client the current
* datetime, then closes the connection. This is arguably the simplest server
* you can write. Beware though that a client has to be completely served its
* date before the server will be able to handle another client.
*
* @see <https://cs.lmu.edu/~ray/notes/javanetexamples/>
*/
public class DateServer {
private static SimpleDateFormat time = new SimpleDateFormat("'Es ist gerade 'H'.'mm' Uhr.'");
private static SimpleDateFormat date = new SimpleDateFormat("'Heute ist 'EEEE', der 'dd.MM.yy");
public static void main(String[] args) throws IOException {
try (ServerSocket listener = new ServerSocket(6060)) {
System.out.println("DateServer läuft");
boolean serverAN = true;
try (Socket socket = listener.accept()) { // Warte auf Clientverbindung
System.out.println("[Server] verbunden.");
while (serverAN) {
PrintWriter zumClient = new PrintWriter(socket.getOutputStream(), true);
zumClient.println("Fuer Zeit = TIME / Fuer Datum = DATE / oder zum beenden = QUIT");
System.out.println("[Server] Nachricht gesendet.");
BufferedReader vomClient = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String clientWunsch = vomClient.readLine();
Date jetzt = new Date();
ObjectOutputStream objectZumClient = new ObjectOutputStream(socket.getOutputStream());
if (clientWunsch.equalsIgnoreCase("TIME")) {
objectZumClient.writeObject(time.format(jetzt));
} else if (clientWunsch.equalsIgnoreCase("DATE")) {
objectZumClient.writeObject(date.format(jetzt));
} else if (clientWunsch.equalsIgnoreCase("QUIT")){
zumClient.println("Serveranfrage wird beendet");
serverAN = false;
}else {
zumClient.println(clientWunsch + " ist unzulaessig");
}
}
}
}
}
}