2013-07-06 54 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); 
    } 
} 
相关问题