I have use some code to take time from NTP (Network Time Protocol). I have tried many servers from this list but always receive an empty string. I don’t know this is because server error, or my code has some problem.
Here is my code:
String machine = "utcnist2.colorado.edu";
// standart port on Computer to take time of day on normal computer
final int daytimeport = 13;
Socket socket = null;
try {
socket = new Socket(machine, daytimeport);
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String time = reader.readLine();
System.out.printf("%s says it is %s %n", machine, time);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Aparently, the server returns two lines. Adding
reader.readLine();just beforeString time = reader.readLine();makes it work.Full code would be: