2013-01-19 43 views
0

我需要构建一个应用程序服务器模块 - 用于原则聊天通信客户端的控制台应用程序,客户端模块 - 必须连接到服务器的GUI应用程序聊天。 问题是我需要限制从服务器启动时读取的配置文件中获得的连接用户数限制java chat(serversocket/socket)

回答

0

为什么不把条件放在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(); 
    } 
} 
+0

你指的是修正,虽然(++我<= numOfConnectionLimit)? – user1992835

+0

thx这是我需要的! thx你 – user1992835

+0

是的,但我编辑了我的答案,它现在基于'connectArray'中的项目数量。您仍然可以使用该变量来计算连接数量。 – 2013-01-19 13:06:03

2

计算成功接受的数量,如果达到您的限制,则不再接受。

+0

也不要照顾1降低计数,如果用户注销 –

+0

@Narendra Pathai感谢您 – user1992835