2013-07-06 59 views
0

下面的代碼是服務器只接受一個客戶端。有人可以解釋我,如何讓服務器接受例如兩個客戶端?非常感謝您的幫助。Java服務器 - 接受更多的客戶端

public class test{ 
private static ServerSocket server; 
private static Socket client; 
private static BufferedReader reader; 
private static String text; 

public static void main(String args[])throws IOException{ 

    server=new ServerSocket(63400); 
    System.out.println("Waiting for client..."); 
    client=server.accept(); 

    reader=new BufferedReader(new InputStreamReader(client.getInputStream())); 

    while((text=reader.readLine())!=null) 
     System.out.println(text); 
}} 

回答

2

accept()返回時,通過Socket創建爲處理客戶端的新Thread;然後返回並再次呼叫accept()

如果這聽起來太複雜了,那麼你可以在走路前試着跑步。您需要了解loops和約threads,然後才能解決該問題。

0

處理您的客戶端線程化。 下面的代碼被簡化了!

public class ClientHandler extends Thread { 
    Socket client; 
    InputStream inputstream; 

    public ClientHandler(Socket client) { 
    this.client= client; 
    inputstream = client.getInputStream(); 
    } 

    @Override 
    public void run() { 
    BufferedReader reader=new BufferedReader(new InputStreamReader(inputstream)); 
    String text; 

    while((text=reader.readLine())!=null) 
     System.out.println(text); 
    } 
} 
相關問題