0

我正在使用 serversocket 类并在新客户端访问 serversocket 时打开线程:

serverSocket = new ServerSocket(port);

while (true) {
        Socket clientSocket = serverSocket.accept();
        new Thread(this).start();//opening multiple threads
}

但是当 5000 个客户端点击此 serversocket 时,客户端会出现错误:java.net.ConnectException: Connection refused: connect

请告诉我打开服务器套接字以便它可以接受所有客户端连接的更好方法是什么?同时客户端连接之间有 1 毫秒的时间间隔。

4

1 回答 1

1

有两件事你一定要检查。

文件描述符限制。在基于 Linux 的系统上,您可以使用 ulimit 进行检查。

其次,Serversockets 有等待队列大小,如果等待的连接数超过队列大小,它们将立即被拒绝。您应该尝试 ServerSocket(port, backlog) 构造函数。

于 2010-07-28T14:23:43.707 回答