限制一定数量的客户端连接到服务器

时间:2016-01-12 18:19:25

标签: java sockets

我做了一个有服务器和客户端的聊天应用程序。 我想限制客户端与某个数字的连接,比方说2。 我试图通过将我的ServerSocket定义为somevar = new ServerSocket(port,2)来做到这一点。 问题是当客户端断开连接新客户端仍无法登录时(在达到2个连接的限制之后),似乎已关闭的套接字被视为连接的套接字。 有人有想法解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

跟踪数组中连接的所有客户端

Client[] clients=new Clients[4];

现在,当客户端断开连接时,您必须使该阵列上的客户端空间为null,然后关闭该用户的任何打开流。在数组中创建一个null空格将为新客户端打开它。

答案 1 :(得分:1)

  

我已经制作了一个包含服务器和客户端的聊天应用程序。   我想限制客户端与某个数字的连接,比方说2。   我试图将我的ServerSocket定义为somevar = new ServerSocket(port,2)。

那不是那个参数的用途。它没有定义连接客户端的最大数量。它定义了listen backlog队列的最大大小,这是尚未被接受的挂起连接连接的数量。

  

问题是当客户断开新客户端仍然无法登录(达到2个连接的限制后)

这不正确。

  

似乎封闭的套接字被视为连接的套接字。   有人有想法解决这个问题吗?

算一算。接受时递增计数器,关闭该连接时递减计数器。