import java.net.*;
import java.io.*;
import java.util.Calendar;

public class UdpEchoClient {
  static final String testString = "Greeks bearing gifts";
  public static void main(String [] args) {
    InetAddress address;
    try {
       address = InetAddress.getByName(args[0]);
     }
     catch (UnknownHostException host) {
       System.out.println(host);
       return;
       }
    DatagramPacket pack=new DatagramPacket(
       testString.getBytes(),testString.length(),
       address,7);
    DatagramPacket incoming=new DatagramPacket(
       new byte[256],256);
    DatagramSocket sock=null;
    try {
      Calendar start, end;
      sock = new DatagramSocket();
      start = Calendar.getInstance();
      sock.send(pack);
      sock.setSoTimeout(5000);
      sock.receive(incoming);
      end = Calendar.getInstance();
      String reply = new String(incoming.getData());
      reply=reply.substring(0,testString.length());
      if (reply.equals(testString)) {
        System.out.println("Success");
	System.out.println("Time = " + 
          (end.getTime().getTime()-start.getTime().getTime()) +
          "mS");
        }
      else
        System.out.println("Reply data did not match");      }
    catch (SocketException socke) {
       System.out.println(socke);
       }
    catch (IOException ioe) {
       System.out.println(ioe);
       } 
    finally {
      sock.close();
      }
    }
  }
