Network Protocol Java

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
class ThreadedServer {
  private final static int BUFSIZE = 512;
  public static void main(String args[]) throws Exception {
    int port = Integer.parseInt(args[0]);
    ServerSocket ss = new ServerSocket(port);
    while (true) {
      Socket s = ss.accept();
      ServerThread st = new ServerThread(s);
      st.start();
    }
  }
}
class ServerThread extends Thread {
  private double total = 0;
  DataInputStream dis;
  DataOutputStream dos;
  public ServerThread(Socket s) throws Exception {
    InputStream is = s.getInputStream();
    dis = new DataInputStream(is);
    OutputStream os = s.getOutputStream();
    dos = new DataOutputStream(os);
  }
  public void run() {
    try {
      while (true) {
        double value = dis.readDouble();
        total += value;
        dos.writeDouble(total);
      }
    } catch (Exception e) {
    }
  }
}