1
0
Fork 0
VS_LET/03-tcp/tcp.time_solution/src/main/java/vs/TimeClient.java

64 lines
2.0 KiB
Java

package vs;
import java.io.InputStream;
import java.net.Socket;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
/**
* Client for echo var.sockets.tcp.time.Time*Server service. Verbindet sich mit
* dem Server und empfängt eine Repräsentation eines Zeitstempels. Das Format
* des Zeitstempels kann entweder die Zeit in ms seit dem 01.01.1970 00:00:00
* GMT als ASCII-Zeichen sein oder ein String, der die Zeit kompatibel zu ISO
* 8601 enthält.
*
* @author Sandro Leuchter
*
*/
public class TimeClient {
/**
* main method: entrypoint to run
*
* @param args address of service to connect to (must be String[0]: host
* (IP-address or DNS hostname), String[1]: port)
*
*/
public static void main(String[] args) {
try (Socket socket = new Socket(args[0], Integer.parseInt(args[1])); InputStream in = socket.getInputStream()) {
StringBuilder stringBuilder = new StringBuilder();
int c;
while ((c = in.read()) != -1) {
stringBuilder.append((char) c);
}
// stringBuilder-Inhalt in ein Date-Objekt konvertieren und ausgeben
DateFormat dateFormatter = DateFormat.getInstance();
Date date = null;
try {
date = dateFormatter.parse(stringBuilder.toString());
} catch (ParseException parseException) {
try {
date = new Date(Long.parseLong(stringBuilder.toString()));
} catch (NumberFormatException numberException) {
// weder verständliches Textformat, noch long-Zahl (ms. seit
// 01.01.1970 00:00)
// System.err.println(numberException);
}
}
System.out.println("empfangen: \"" + stringBuilder.toString() + "\"");
if (date != null) {
System.out.println("gewandelt: " + date);
} else {
// weder verständliches Textformat, noch long-Zahl (ms. seit
// 01.01.1970 00:00)
System.err.println("es war nicht mögich ein Date-Objekt daraus zu erzeugen.");
}
} catch (Exception e) {
System.err.println(e);
}
}
}