import java.net.DatagramSocket; import java.net.DatagramPacket; import java.net.InetSocketAddress; import java.util.Date; import java.util.List; import java.util.ArrayList; import java.util.Iterator; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class TimeServerDG { public static void main (String[] args) { if (args.length < 1) { System.err.println ("Usage: TimeServerDG "); return; } try { List recipients = new ArrayList(); BufferedReader in = new BufferedReader (new FileReader(args[0])); String next = null; while ((next = in.readLine()) != null) recipients.add(next); in.close(); InetSocketAddress[] hosts = new InetSocketAddress[recipients.size()]; int i = 0; for (String host : recipients) hosts[i++] = new InetSocketAddress (host, port); DatagramSocket t_socket = new DatagramSocket(); while (true) { byte[] t_bytes = new Date().toString().getBytes(); DatagramPacket t_packet = new DatagramPacket (t_bytes, t_bytes.length); for (i = 0; i < hosts.length; i++) { t_packet.setSocketAddress (hosts[i]); t_socket.send (t_packet); } Thread.sleep (winks); } } catch (IOException e) { System.err.println (e); } catch (InterruptedException e) { System.err.println (e); } } private static final int port = 10001; private static final int winks = 10000; }