1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package examples;
17
18 import java.io.IOException;
19 import java.net.InetAddress;
20 import org.apache.commons.net.TimeTCPClient;
21 import org.apache.commons.net.TimeUDPClient;
22
23 /***
24 * This is an example program demonstrating how to use the TimeTCPClient
25 * and TimeUDPClient classes. It's very similar to the simple Unix rdate
26 * command. This program connects to the default time service port of a
27 * specified server, retrieves the time, and prints it to standard output.
28 * The default is to use the TCP port. Use the -udp flag to use the UDP
29 * port. You can test this program by using the NIST time server at
30 * 132.163.135.130 (warning: the IP address may change).
31 * <p>
32 * Usage: rdate [-udp] <hostname>
33 * <p>
34 * <p>
35 * @author Daniel F. Savarese
36 ***/
37 public final class rdate
38 {
39
40 public static final void timeTCP(String host) throws IOException
41 {
42 TimeTCPClient client = new TimeTCPClient();
43
44
45 client.setDefaultTimeout(60000);
46 client.connect(host);
47 System.out.println(client.getDate().toString());
48 client.disconnect();
49 }
50
51 public static final void timeUDP(String host) throws IOException
52 {
53 TimeUDPClient client = new TimeUDPClient();
54
55
56 client.setDefaultTimeout(60000);
57 client.open();
58 System.out.println(client.getDate(InetAddress.getByName(host)).toString());
59 client.close();
60 }
61
62
63 public static final void main(String[] args)
64 {
65
66 if (args.length == 1)
67 {
68 try
69 {
70 timeTCP(args[0]);
71 }
72 catch (IOException e)
73 {
74 e.printStackTrace();
75 System.exit(1);
76 }
77 }
78 else if (args.length == 2 && args[0].equals("-udp"))
79 {
80 try
81 {
82 timeUDP(args[1]);
83 }
84 catch (IOException e)
85 {
86 e.printStackTrace();
87 System.exit(1);
88 }
89 }
90 else
91 {
92 System.err.println("Usage: rdate [-udp] <hostname>");
93 System.exit(1);
94 }
95
96 }
97
98 }
99