java聊天(serversocket/socket)
我需要构建一个应用程序服务器模块-一个用于通信客户端的控制台应用程序,客户端模块-一个GUI应用程序聊天,它必须连接到服务器。java聊天(serversocket/socket),java,Java,我需要构建一个应用程序服务器模块-一个用于通信客户端的控制台应用程序,客户端模块-一个GUI应用程序聊天,它必须连接到服务器。 问题是我需要设置连接用户数量的限制。我从配置文件中获取的限制在服务器启动时读取。计算成功接受的数量,如果达到限制,则不再接受。为什么不在while循环中设置条件 try { int numOfConnectionLimit = 10; // or read number of connection from that config file
问题是我需要设置连接用户数量的限制。我从配置文件中获取的限制在服务器启动时读取。计算成功接受的数量,如果达到限制,则不再接受。为什么不在while循环中设置条件
try {
int numOfConnectionLimit = 10; // or read number of connection from that config file
ServerSocket listenerServ = new ServerSocket(servPort);
System.out.println("Waiting...." + servPort + " "
+ "" + listenerServ.getInetAddress().getHostAddress());
while (connectArray.size() < numOfConnectionLimit) {
sock = listenerServ.accept();
connectArray.add(sock);
System.out.println("Client connected from: " + sock.getLocalAddress().getHostName());
addUserName(sock);
SocketChatServerReturn chat = new SocketChatServerReturn(sock);
Thread X = new Thread(chat);
X.start();
}
} catch (Exception exSock) {
System.out.println("IOException on socket listen: " + exSock);
exSock.printStackTrace();
}
}
试试看{
int numOfConnectionLimit=10;//或从该配置文件读取连接数
ServerSocket listenerServ=新的ServerSocket(servPort);
System.out.println(“等待…”+servPort+“”
+“”+listenerServ.getInetAddress().getHostAddress());
while(connectArray.size()
您的意思是(++i是的,但我编辑了我的答案,现在它是基于连接数组中的项目数的。您仍然可以使用该变量来计算连接数。您的答案正是我所需要的,但是如果我需要在LogInForm上为客户端发送消息,在JoptionPane上向他显示“服务器正忙”,该怎么办我将使用多播
技术。客户端将首先连接到多播服务器,如果有连接槽,该客户端将向服务器发送消息,然后,服务器将向客户端响应有槽,现在可以连接到服务器套接字
。如果没有,则服务器将向客户端回复“服务器正忙”或者,如果用户注销,您也可以使用谷歌java多播教程,并注意将计数减少1