首页 > 解决方案 > 端口上的最大连接数

问题描述

我正在尝试在java. 服务器的代码是:-

ServerSocket serverSocket = new ServerSocket();
SocketAddress socketAddress = new InetSocketAddress(9000);
LOGGER.info("Listening on port :: 9000");
serverSocket.bind(socketAddress,5 );
while (true) {
    Socket socket = serverSocket.accept();
    Processor processor = Processor.getInstance(processorCounter++);
    try {
        processor.begin(socket);
    } catch (AppException e) {
        LOGGER.info(e.getMessage(), e);
    }
}

我正在创建一个新线程Processor,它接受socket并开始response在其上发布而不关闭连接。这种联系是长期和持久的。

当我用大约 2000 访问此服务器时requests,我观察到只有249 threads正在创建。问题是,为什么不249 threads/processors产生更多?

PS.:
requests正在从
Javascript发出请求的谷歌浏览器发送 -

const func1=function(){
    for(var i=1;i<=2000;i++){
        var ws=new WebSocket("ws://localhost:9000");
ws.onopen=function(event){
    ws.send("are you a teapot?! from client "+i);
};
ws.onmessage=function(event){
console.log("Server says : "+event.data);
};
ws.onerror=function(event){
console.log("error () -> "+JSON.stringify(event));
};
ws.onclose=function(event){
console.log("close () -> "+JSON.stringify(event));
};}
}

标签: javaapacheserveroperating-system

解决方案


推荐阅读