01: //************ Datagram client for time ********
02: import java.net.DatagramSocket;
03: import java.net.DatagramPacket;
04: import java.util.Date;
05: import java.util.Random;
06: import java.io.IOException;
07: 
08: // test client for TimeServerDG
09: public class TimeReceiverDG {
10:     public static void main(String[ ] args) {
11:         Random r = new Random();  // used to vary the pause
12:         try {
13:             DatagramSocket sock = new DatagramSocket(port);
14:             // Create a receiving packet of the right size
15:             byte[ ] cargo = new Date().toString().getBytes();
16:             DatagramPacket time_packet = 
17:                new DatagramPacket(cargo, cargo.length);
18:             while (true) {
19:                sock.receive(time_packet); //*** blocks
20:                System.out.println("Server time: " + 
21:                          new String(time_packet.getData()));
22:                Thread.sleep(Math.abs(r.nextInt()) % 12 * 1000);
23:             }
24:         }
25:         catch(IOException e) { System.err.println(e); }
26:         catch(InterruptedException e) { System.err.println(e); }
27:     }
28:     private static final int port = 10001;
29: }