java - Problem in reusing same serversocket -


i have implement following code create ssl server socket.

    public void createconnection(){      port =8888;     listen = true;             issvrruning = true;             try {                   string keystore = config.keystore_file;                 // string keystore = "/u04/app/ato/data/keystore/atradsvrkeystore";                 char[] keystorepw = "abcd".tochararray();                 char[] keypw = "abcd".tochararray();                 com.sun.net.ssl.trustmanagerfactory tmf;                  boolean requireclientauthentication;                  java.security.security.addprovider(new com.sun.net.ssl.internal.ssl.provider());                 java.security.keystore keystore = java.security.keystore.getinstance(                         "jks");                 keystore.load(new fileinputstream(keystore), keystorepw);                  com.sun.net.ssl.keymanagerfactory kmf = com.sun.net.ssl.keymanagerfactory.getinstance("sunx509");                 kmf.init(keystore, keypw);                  com.sun.net.ssl.sslcontext sslc = com.sun.net.ssl.sslcontext.getinstance("sslv3");                 tmf = com.sun.net.ssl.trustmanagerfactory.getinstance("sunx509");                 tmf.init(keystore);                  sslc.init(kmf.getkeymanagers(), tmf.gettrustmanagers(), null);                 sslserversocketfactory ssf = sslc.getserversocketfactory();                  ssocket = (sslserversocket) ssf.createserversocket();                 try {                     ssocket.setreuseaddress(true);                 } catch (socketexception ex) {                     loggersvr.log(level.severe, "socketexception in setting timeout serversocket.");                     ex.printstacktrace();                 }                 ssocket.bind(new inetsocketaddress(port));                 ssocket.setneedclientauth(true);                 while (listen) {                     //wait client connect//                     socket = ssocket.accept();         // here goes code need handle new connection     }  }catch(){ //there several catch blocks catch checked exceptions } } 

if there problem or exception in above socket close socket , recreate server socket calling above method. problem time cannot recreate server socket using same port. gives following error when trying it.

server socket allocation error specific port 

i have set reusable property when creating socket.can 1 tell problem?

server socket allocation error specific port

that's not java exception message. comes undisclosed point in code. judging accuracy of error message printing if setreuseaddress() fails, may have nothing whatsoever actual error condition. are calling setreuseaddress(true) find rather unlikely it's bind problem. have tell actual exception , error message.

there's moral here: don't make own error messages; use 1 provided in exception.

also code ten years out of date. com.sun.net.ssl.* stuff should replaced javax.net.ssl.* , don't need add provider. @since jdk 1.3.


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -