我做了一个有服务器和客户端的聊天应用程序。 我想限制客户端与某个数字的连接,比方说2。 我试图通过将我的ServerSocket定义为somevar = new ServerSocket(port,2)来做到这一点。 问题是当客户端断开连接新客户端仍无法登录时(在达到2个连接的限制之后),似乎已关闭的套接字被视为连接的套接字。 有人有想法解决这个问题吗?
答案 0 :(得分:2)
跟踪数组中连接的所有客户端
Client[] clients=new Clients[4];
现在,当客户端断开连接时,您必须使该阵列上的客户端空间为null,然后关闭该用户的任何打开流。在数组中创建一个null空格将为新客户端打开它。
答案 1 :(得分:1)
我已经制作了一个包含服务器和客户端的聊天应用程序。 我想限制客户端与某个数字的连接,比方说2。 我试图将我的ServerSocket定义为somevar = new ServerSocket(port,2)。
那不是那个参数的用途。它没有定义连接客户端的最大数量。它定义了listen backlog队列的最大大小,这是尚未被接受的挂起连接连接的数量。
问题是当客户断开新客户端仍然无法登录(达到2个连接的限制后)
这不正确。
似乎封闭的套接字被视为连接的套接字。 有人有想法解决这个问题吗?
算一算。接受时递增计数器,关闭该连接时递减计数器。