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: }