Hi,

I have written the following program to test the MINA framework. I am trying
to test the number of concurrent connections that can be opened on my
windows 2008 server. But hen i reach 1000 connections it is giving the 
following error
"java.net.SocketException: No buffer space available (maximum connections
reached?): connect"

below is my source


package Research;

import java.net.InetSocketAddress;
import java.nio.charset.Charset;

import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.buffer.SimpleBufferAllocator;
import org.apache.mina.core.future.ConnectFuture;
import org.apache.mina.core.service.IoConnector;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.transport.socket.nio.NioSocketConnector;

public class SocketTest {

        static int sucess=0,failure=0;
        static String serverIP,localIp;
        static  int serverPort=1234;
        static int initialPort=30000;
        static int numberofports=5000;
        static IoConnector connector;

        static{

                boolean useHeapBuffers=false;
                IoBuffer.setUseDirectBuffer(!useHeapBuffers);
                if (useHeapBuffers) {
                        IoBuffer.setAllocator(new SimpleBufferAllocator());
                }
                connector = new NioSocketConnector();
                connector.getFilterChain().addLast("codec",new 
ProtocolCodecFilter(new
TextLineCodecFactory(Charset.forName("UTF-8"))));
                connector.setHandler(new MinaClientHandler_executor("hello 
server"));
                connector.getSessionConfig().setReadBufferSize(1024);



        }

        public static void main(String args[]) throws Exception
        {
                if(args[0]!= null)
                        serverIP=args[0];
                else
                        throw new Exception("ServerIp can not be nempty");

                if(args[1] != null)
                        serverPort=Integer.parseInt(args[1]);

                else
                        throw new Exception("Port can not be nempty");

                if(args[2] != null)
                        numberofports=Integer.parseInt(args[2]);

                System.out.println("initial port ::: "+(numberofports));

                
                for(int i=initialPort;i<(initialPort+numberofports);i++)
                {
                        final int portNumber=i;

                                try {

                                 ConnectFuture future = connector.connect(new
InetSocketAddress(serverIP,serverPort));

                                 future.awaitUninterruptibly();

                                 if (!future.isConnected())
                                 {
                                         throw new Exception("port is already in
use"+future.getException()+">>>>>>>>>>>>");
                                 }
                                 IoSession session = future.getSession();

                                 sucess++;
                                 System.out.println("Opened Socket 
..."+portNumber);
                                 System.out.println("Sucess ::"+sucess+"  
failure ::"+failure);
                         } catch (Exception e) {
                                 failure++;
                                 System.out.println("Error Opening Socket 
..."+portNumber +"Error ::
"+e.getMessage());
                                 System.out.println("Sucess ::"+sucess+"  
failure ::"+failure);
                         }
        
                         Thread.sleep(100);

                }



        }
}




--
View this message in context: 
http://apache-mina.10907.n7.nabble.com/NIO-Client-Sockets-No-Buffer-space-error-tp39978.html
Sent from the Apache MINA Developer Forum mailing list archive at Nabble.com.

Reply via email to