首页 > 解决方案 > 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 脚本来轰炸它。但我从来没有收到“连接被拒绝”或连接明显延迟,好像没有遵守限制一样。

我究竟做错了什么?

标签: javasockets

解决方案


您可以在接受一个连接后关闭 ServerSocket。这对你有用。

为了更深入地了解这个问题,您可以参考答案(Why are not ServerSocket connections denied when backlog is full?


推荐阅读