java - Java中的套接字连接没有限制
问题描述
我还是 Java 和套接字的新手。我有一个监听连接的程序,如果有连接,它会将其发送到处理连接并用于ExecutorService
启动处理线程的类。
我想限制连接数,所以我发现一个套接字有一个参数。这是主要代码:
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(123, 1);
try {
ConnectionListener listener = new ConnectionListener(server);
listener.run();
}
catch (Exception exception) {
exception.printStackTrace();
}
}
在此示例中,我想将连接数限制为 1。我尝试通过大量并行执行将数据发送到此端口的 python 脚本来轰炸它。但我从来没有收到“连接被拒绝”或连接明显延迟,好像没有遵守限制一样。
我究竟做错了什么?
解决方案
您可以在接受一个连接后关闭 ServerSocket。这对你有用。
为了更深入地了解这个问题,您可以参考答案(Why are not ServerSocket connections denied when backlog is full?)
推荐阅读
- angular - Angular Browserslist:caniuse-lite 已过时。请运行下一个命令`npm update`
- xamarin.forms - 如何从构建中排除 WinPhone
- c# - Web API 中的电子邮件确认
- java - 在 Windows 上运行良好的 Java 代码在 Ubuntu 上无法运行
- java - In-app billing acknowledgePurchase 问题 [使用 google play 应用内计费库]
- odbc - 进度数据库、OpenLink、OpenEdge 兼容性
- python - IndexError:Python脚本中的列表索引超出范围
- swiftui - SwiftUI 制作一个只显示一定数量行的列表
- android - Jetpack BottomNavigationView 如何去除动画中的内容淡入淡出
- c# - 如何检测与可为空属性结合的数据类型