Network Protocol Java

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
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();
    }
  }
}