import java.net.*;
import java.io.*;
import java.lang.*;

class test {
    
    static int port = 10000;
    static ServerSocket ss;

    public static void main(String[] argv) {
	int i = 0;
	System.out.println("Server started");
	try {
	    ss = new ServerSocket(port);
	    while (true) {
		Socket s = ss.accept();
		i++;
		InetAddress cliAddr = s.getInetAddress();
		System.out.println("Connection from "+cliAddr.getHostName()+
				   "on local port "+s.getLocalPort());
		ServerThread st = new ServerThread(s,i);
		st.start();
	    }
	} catch (IOException e) {
	    e.printStackTrace();
	}
	
    }
    
}

class ServerThread extends Thread {
    private Socket s;
    private BufferedReader is;
    private BufferedWriter ps;
    private boolean isConnected;
    private Integer num;

    ServerThread(Socket ins,int i) {
	s = ins;
	num = new Integer(i);
	isConnected = true;
	try {
	    this.is = new BufferedReader(new InputStreamReader(s.getInputStream()));
	    this.ps = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
	} catch (IOException e) {
	    e.printStackTrace();
	}
	System.out.println("Thread:"+num+" connected");
    }
    
    public void run() {
	String line = num.toString();
	//try {
	    while (isConnected) {
		Thread.yield();
		//ps.write(line,0,line.length());
		//ps.flush();
	    }
	    //} catch (IOException e) {
	    //    e.printStackTrace();
	    //}
    }
}

