I am implementing a server/client program. I need create multiple thread in server to handle message from client. When I compiled the code, there is an error
Exception in thread "Thread-1" java.lang.NullPointerException
at server.run(Program.java:59)
Line 59 is
BufferedReader inFromClient = new BufferedReader(new
InputStreamReader(sSock.getInputStream()));
which is used to read message from client side.
My program code is:
class Program {
public static void main(String[] args) throws UnknownHostException, IOException{
// Program runs as a Server
if(args.length == 2) {
String host = args[0];
int port = Integer.parseInt(args[1]);
String fileName = "serverFile";
ServerSocket sSock = null;
// Open a server socket.
try {
sSock = new ServerSocket(port);
}catch(Exception e) {
System.out.println("Error: cannot open server socket");
System.exit(1); // Handle exceptions.
}
System.out.println("Server is listening on port " + port);
while(true) {
new server(sSock.accept(), fileName).start();
}
}
}
}
class server extends Thread {
// Thread t = Thread.currentThread();
Socket sSock = null;
String fileName = null;
server(Socket sScok,String fileName) {
this.sSock = sSock;
this.fileName = fileName;
}
@Override
public void run() {
try {
BufferedReader inFromClient = new BufferedReader(new
InputStreamReader(sSock.getInputStream()));
PrintWriter sendOut = new PrintWriter(sSock.getOutputStream(),
true);
String s = inFromClient.readLine();
System.out.println("receive string " + s + "from client");
sendOut.println("send Ack to you");
}catch (IOException e) {
System.out.println("Error: " + e);
}
}
}
I have been struggled for a long time...Someone can help would be great.