I'm trying to write a java message switch application by using a multi-threaded server and two clients. However I'm stuck at one point as error occurs when I try to run my programmes. Here are my codes for the server:
public class EchoServer extends Thread {
private static ServerSocket serverSocket;
private static Socket connection1;
private static Socket connection2;
private BufferedReader input;
private PrintWriter output;
final static int portNumber = 4434;
public EchoServer(Socket in,Socket out) throws IOException{
    connection1 = serverSocket.accept();
    connection2 = serverSocket.accept();
    input = new BufferedReader(new InputStreamReader(in.getInputStream()));
    output = new PrintWriter(out.getOutputStream(),true);
}
public void run()
{
    String inputLine;
        while((inputLine=input.readLine())!=null){
            if(inputLine.equalsIgnoreCase("quit"))
                break;
            System.out.println("received:" + inputLine);
            output.println(inputLine);
        }
            System.out.println("received quit,exiting");
    }
public static void main(String args[]){
            serverSocket = new ServerSocket(portNumber);
        System.out.println("listening on port:"+ portNumber);
        EchoServer echoserver1 = new EchoServer(connection1,connection2);
        EchoServer echoserver2 = new EchoServer(connection2,connection1);
        echoserver1.start();
        echoserver2.start();
    }
}
I also wrote two classes for client. When I run the server and then the first client, they work as expected. However when I try to run the second client, a NullPointerException is thrown, regarding to the following two lines:
        input = new BufferedReader(new InputStreamReader(in.getInputStream()));
        EchoServer echoserver1 = new EchoServer(connection1,connection2);
I know it's a rather long piece of codes to look at, but I'm really stuck as I can't see the problem here. The earlier single threaded version of server I wrote worked without error, so I know there's something to do about the multithreaded. Any help and advice is really appreciated. Thanks!
 
    