i'm trying write java message switch application using multi-threaded server , 2 clients. i'm stuck @ 1 point error occurs when try run programmes. here codes 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 wrote 2 classes client. when run server , first client, work expected. when try run second client, nullpointerexception thrown, regarding following 2 lines:
input = new bufferedreader(new inputstreamreader(in.getinputstream())); echoserver echoserver1 = new echoserver(connection1,connection2);
i know it's rather long piece of codes at, i'm stuck can't see problem here. earlier single threaded version of server wrote worked without error, know there's multithreaded. , advice appreciated. thanks!
connection1
, connection2
never initialized in main
method, hence nullpointerexception
when call in.getinputstream()
in constructor.
not sure you're trying achieve, looks might want move these 2 lines
connection1 = serversocket.accept(); connection2 = serversocket.accept();
to main
method.