2013-01-19 87 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