Java 带有SSLSocketFactory的SSL服务器

Java 带有SSLSocketFactory的SSL服务器,java,serversocket,Java,Serversocket,我有一个SSL服务器这是代码: 公共静态无效startServer{ System.setProperty("javax.net.ssl.keyStore", "keystore"); System.setProperty("javax.net.ssl.keyStorePassword", "pass"); SSLServerSocket server = (SSLServerSocket)null; try { SSLServerSoc

我有一个SSL服务器这是代码:

公共静态无效startServer{

    System.setProperty("javax.net.ssl.keyStore", "keystore");
    System.setProperty("javax.net.ssl.keyStorePassword", "pass");


    SSLServerSocket server = (SSLServerSocket)null;


    try {

        SSLServerSocketFactory sslserversocketfactory = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
        server = (SSLServerSocket) sslserversocketfactory.createServerSocket(4380);


    } catch(IOException e) {
        e.printStackTrace();
    }

    while(true){

        try {
            SSLSocket client = (SSLSocket) server.accept();
            Runnable rx = new receptor(client,client.getInetAddress().getHostAddress());

            Thread rxThread = new Thread(rx);
            rxThread.start();   

        } catch (Exception e){
            e.printStackTrace();
        }
有时会发生连接被拒绝的情况,这是我得到的错误:

 Jun 2, 2013 2:02:01 PM spb.receptor keepAlive
SEVERE: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.GeneratedConstructorAccessor31.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2214)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:781)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.GeneratedConstructorAccessor20.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:284)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at spb.database.connectDB(database.java:32)
at spb.keepAlive.update(keepAlive.java:49)
at spb.receptor.keepAlive(receptor.java:526)
at spb.receptor.run(receptor.java:121)
at java.lang.Thread.run(Thread.java:662)
    Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
还有这个:

 The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.GeneratedConstructorAccessor31.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:343)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2140)
... 15 more
  Caused by: java.net.SocketException: Too many open files
at java.net.Socket.createImpl(Socket.java:397)
at java.net.Socket.<init>(Socket.java:371)
at java.net.Socket.<init>(Socket.java:218)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:254)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:292)
... 16 more
我有30个到我的服务器的连接,我读到最大值是50,有时客户端断开连接并重新连接,上一个连接可能还活着吗

如何避免这个错误