The Daytime Protocol (Internet RFC 867) is a simple protocol that allows clients to retrieve the current date and time from a remote server. While useful at a bsic level, the Daytime protocol is most often used for debugging purposes rather than actually acquire the current date and time.
The daytime protocol is available on well-known TCP port 13.
Network Time Protocol (NTP) (Internet RFC-1305a) is an Internet standard protocol which enables client computers to maintain system time synchronization to the US Naval Observatory Master Clocks in Washington, DC and Colorado Springs, CO.
NTP runs as a client program on a computer. It sends periodic time requests to one or more servers, obtaining server time stamps and using them to adjust the client's clock.
Typical accuracy achieved is in the range 1 - 30 ms continuous, and is highly dependent on the symmetry and speed of the Internet path between client and server. Best results are achieved using a combination of servers which are closest to the client in a network sense.
//---------------------------------------------------------------------- // File: DayTimeClient // What: A TCP Client for the DayTime service on port 13 // Who: Dick Steflik (steflik@binghamton.edu) //---------------------------------------------------------------------- import java.io.*; import java.net.*; public class DayTimeClient { public static final int port = 13; public static void main(String args[]) { Socket s = null; String timestamp; // Possible servers: // tock.usno.navy.mil // ntp2.usno.navy.mil try { // create the socket to the remote host s = new Socket((args.length>0? args[0]: "tock.usno.navy.mil") , port); // create an input stream and tie it to the socket InputStream in = s.getInputStream(); BufferedReader sin = new BufferedReader( new InputStreamReader(in)); // tell user they are connected System.out.println("Connected to: " + s.getInetAddress() + " on port " + s.getPort()) ; while (true) { // read the timstamp timestamp = sin.readLine(); if (timestamp == null) { System.out.println("Server closed connection"); break; } System.out.println("Daytime :" + timestamp); } } catch (IOException e) { System.out.println(e);} finally { // force the connection closed in case its still open try { if ( s != null) s.close();} catch (IOException e2) { } } } }
Maintained by John Loomis, last updated 5 Jan 2001