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); } } }