Hallo,
ich arbeite gerade an einem kleinen Time-Service der über eine Socket-Verbindung je nach Eingabe die Zeit oder das Datum ausgibt. Leider funktionieren die Befehle read() und write() nicht. Kann mir vielleicht jemand weiterhelfen?
Die Klasse Clock sollte nicht verändert werden.
ich arbeite gerade an einem kleinen Time-Service der über eine Socket-Verbindung je nach Eingabe die Zeit oder das Datum ausgibt. Leider funktionieren die Befehle read() und write() nicht. Kann mir vielleicht jemand weiterhelfen?
Code:
import java.io.*;
import java.net.*; //Package
public class TimeService {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(1024);
while (true) {
Socket client = null;
try {
client = server.accept();
handleConnection(client);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (client != null)
try {
client.close();
} catch (IOException e) {
}
}
}
}
public static void handleConnection(Socket client) throws IOException {
while (client.isConnected()) {
InputStream in = client.getInputStream();
OutputStream output = client.getOutputStream();
String input = in.toString();
output.write("time service");
output.newLine();
if (input.equals("time")) {
output.write(Clock.time());
output.newLine();
} else {
if (input.equals("date")) {
output.write(Clock.date());
output.newLine();
} else {
client.close();
}
}
}
}
}
Die Klasse Clock sollte nicht verändert werden.
Code:
import java.text.SimpleDateFormat;
import java.util.Date;
public class Clock {
public static SimpleDateFormat timeFormatter = new SimpleDateFormat("kk:mm:ss");
private static SimpleDateFormat dateFormatter = new SimpleDateFormat("dd.MM.yyyy");
private static Date d = new Date();
public static String date() {
d.setTime(System.currentTimeMillis());
return dateFormatter.format(d);
}
public static String time() {
d.setTime(System.currentTimeMillis());
return timeFormatter.format(d);
}
}