java - ServerSocket.accept() throwing SocketTimeoutException with null message -


i trying instance of socket serversocket object. but, prints

sockettimeoutexception = null 

there code:

try {     // listen new connections     log.d("shairport", "service >> in try ");     try {         servsock = new serversocket(port);     } catch (ioexception e) {         log.d("shairport", "service >> in try # io exception = " +e.getmessage());         servsock = new serversocket();     }catch(exception e) {         log.d("shairport", "service >> in try # e xception = " +e.getmessage());     }      // dns emitter (bonjour)     byte[] hwaddr = gethardwareadress();     emitter = new bonjouremitter(name, getstringhardwareadress(hwaddr), port);      //setting timeout     servsock.setsotimeout(10000);       log.d("shairport", "service >> stopthread = " +stopthread);      while (!stopthread) {         try {             //********** throwing exception ***************//             socket socket = servsock.accept();             servsock.setreuseaddress(true);             log.d("shairport", "service >> got connection " + socket.tostring());              new rtspresponder(hwaddr, socket).start();          } catch(sockettimeoutexception e) {             e.printstacktrace();             log.d("shairport", "service >> sockettimeoutexception = " + e.getmessage());            //********* here getting exception **************//                   }catch(exception e) {             log.d("shairport", "service >> exception = " + e.getmessage());             servsock.close();         }     } } catch (ioexception e) {      log.d("shairport", "service >> try # catch ioexception = " + e.getmessage());     throw new runtimeexception(e);  }  

please let me know if doing wrong, can resolve issue.

02-06 18:14:08.300: w/system.err(2245): java.net.sockettimeoutexception 02-06 18:14:08.300: w/system.err(2245):     @ java.net.plainsocketimpl.accept(plainsocketimpl.java:108) 02-06 18:14:08.300: w/system.err(2245):     @ java.net.serversocket.implaccept(serversocket.java:203) 02-06 18:14:08.310: w/system.err(2245):     @ java.net.serversocket.accept(serversocket.java:128) 02-06 18:14:08.310: w/system.err(2245):     @ vavi.apps.shairport.launchthread.run(launchthread.java:99) 02-06 18:14:08.310: w/system.err(2245): caused by: libcore.io.errnoexception: accept failed: eagain (try again) 02-06 18:14:08.320: w/system.err(2245):     @ libcore.io.posix.accept(native method) 02-06 18:14:08.320: w/system.err(2245):     @ libcore.io.blockguardos.accept(blockguardos.java:55) 02-06 18:14:08.320: w/system.err(2245):     @ java.net.plainsocketimpl.accept(plainsocketimpl.java:98) 02-06 18:14:08.320: w/system.err(2245):     ... 3 more 

you're setting ten second timeout on server socket.

the accept() method therefore throw sockettimeoutexception if no connection arrives within ten seconds.

if don't want behaviour, don't set timeout, or raise it.

i have no idea why you're surprised @ getting timeout when you're setting yourself.

nb utterly pointless call setreuseaddress() on server socket after bound, let alone every time accept new connection.


Comments

Popular posts from this blog

python - Subclassed QStyledItemDelegate ignores Stylesheet -

java - HttpClient 3.1 Connection pooling vs HttpClient 4.3.2 -

SQL: Divide the sum of values in one table with the count of rows in another -