public void run(){ ConsoleHelper.writeMessage("socketaddress"+socket.getRemoteSocketAddress()); Connection con=new Connection(socket); //SocketAddress ad=con.getRemoteSocketAddress(); //ConsoleHelper.writeMessage("socketaddress"+ad); //System.out.println("socketaddress"+ad); String newClient=""; try{ newClient=serverHandshake(con); }catch(ClassNotFoundException ee){ConsoleHelper.writeMessage("io er"); }catch( IOException e){ ConsoleHelper.writeMessage("io er"); }finally{ try{ con.close(); }catch(IOException e){ConsoleHelper.writeMessage("class n");} } if(newClient==null || newClient.isEmpty())return; if(!newClient.isEmpty())sendBroadcastMessage(new Message(MessageType.USER_ADDED,newClient)); try{ notifyUsers(con,newClient); serverMainLoop(con,newClient); }catch(ClassNotFoundException e){ ConsoleHelper.writeMessage("io error in run"+newClient); } catch(IOException ee){ ConsoleHelper.writeMessage("class not found ex in run"+newClient); } finally{ try{ con.close(); }catch(IOException e){ConsoleHelper.writeMessage("class n");} } if(newClient!=null && !newClient.isEmpty()){ try{ connectionMap.remove(newClient); }catch(Exception e){ConsoleHelper.writeMessage("class not found ex in run"+newClient);} sendBroadcastMessage(new Message(MessageType.USER_REMOVED,newClient)); } ConsoleHelper.writeMessage("disconnected with "+newClient); }