Network Java Tutorial

import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
public class CounterApp {
  String servletURL;
  String sessionCookie = null;
  public static void main(String args[]) {
    if (args.length == 0) {
      System.out.println("\nServlet URL must be specified");
      return;
    }
    try {
      CounterApp app = new CounterApp(args[0]);
      for (int i = 1; i <= 5; i++) {
        int count = app.getCount();
        System.out.println("Pass " + i + " count=" + count);
      }
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
  public CounterApp(String url) {
    servletURL = url;
  }
  public int getCount() throws Exception {
    java.net.URL url = new java.net.URL(servletURL);
    java.net.URLConnection con = url.openConnection();
    if (sessionCookie != null) {
      con.setRequestProperty("cookie", sessionCookie);
    }
    con.setUseCaches(false);
    con.setDoOutput(true);
    con.setDoInput(true);
    ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
    DataOutputStream out = new DataOutputStream(byteOut);
    out.flush();
    byte buf[] = byteOut.toByteArray();
    con.setRequestProperty("Content-type", "application/octet-stream");
    con.setRequestProperty("Content-length", "" + buf.length);
    DataOutputStream dataOut = new DataOutputStream(con.getOutputStream());
    dataOut.write(buf);
    dataOut.flush();
    dataOut.close();
    DataInputStream in = new DataInputStream(con.getInputStream());
    int count = in.readInt();
    in.close();
    if (sessionCookie == null) {
      String cookie = con.getHeaderField("set-cookie");
      if (cookie != null) {
        sessionCookie = parseCookie(cookie);
        System.out.println("Setting session ID=" + sessionCookie);
      }
    }
    return count;
  }
  public String parseCookie(String raw) {
    String c = raw;
    if (raw != null) {
      int endIndex = raw.indexOf(";");
      if (endIndex >= 0) {
        c = raw.substring(0, endIndex);
      }
    }
    return c;
  }
}