java - 端口上的最大连接数
问题描述
我正在尝试在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));
};}
}
解决方案
推荐阅读
- javascript - 中间算法脚本:搜索和替换
- android - onLongPressClickListner Child Swipe 未在 android 中显示
- linux-kernel - libgpiod 配方需要一个内核头文件:linux/gpio.h
- powershell - 如何查找文件夹中名称包含列表中单词的所有文件?
- php - 如何使用 laravel 7 在数据库中传递数组
- ruby-on-rails - 如何在 Ruby on Rails 中使用 ActiveRecord 找到与完全相同的 has_many 关系集的关系?
- python - 使用 numpy 并行计算多个图像
- java - Minikube/kubernetes pod 无法连接到 Mongodb Atlas
- java - 用arraylist中的单词替换txt文件中的单词?
- python - While 循环使用 concurrent.futures ProcessPoolExecutor