java - Restart ServerSocket after IOException -


how restart serversocket after ioexception?

my server socket gets eofexception , stops accepting new connections. solve have tried closing old server socket , creating new 1 after exception thrown. after new server socket created, new connections not accepted. can 1 see why not work?

public server() throws ioexception {           try {     listen(port);   }   catch (ioexception e) {     system.out.println("server() - io exception");     system.out.println(e);      /*when exception caught close server socket , try opening new 1 */     serversocket.close();      listen(port);   } }  private void listen(int port) throws ioexception {   serverislistening = true;    serversocket = new serversocket(port);   system.out.println("<listening> port: " + serversocket);    while (serverislistening) {     if (eofexceptionthrown){  //manually triggering exception troubleshoot       serverislistening = false;       throw new eofexception();     }      //accept next incoming connection     socket socket = serversocket.accept();     system.out.println("[new conn] " + socket);      objectoutputstream oout = new objectoutputstream(socket.getoutputstream());      // save streams     sockettooutputstreams.put(socket, oout);      // create new thread connection, , put in hash table     sockettoserverthread.put(socket, new serverthread(this, socket));   } } 

2x entry point , 1 form catch: never ends well.

  try {     listen(port);   }   catch (ioexception e) {     system.out.println("server() - io exception");     system.out.println(e);      /*when exception caught close server socket , try opening new 1 */     serversocket.close();      listen(port);   } 

i in loop, while boolean true:

while(needtolisten){   try{      listen(port)    }catch(exception ex){      if(exception   needed break loop, message has string on it){        break;      }    } }    if(needtolisten){       log.e("something unexpected, unrecoverable....");   } 

Comments

Popular posts from this blog

c# - Operator '==' incompatible with operand types 'Guid' and 'Guid' using DynamicExpression.ParseLambda<T, bool> -