Java進(jìn)行并發(fā)多連接socket編程

字號:

Java多個客戶端同時連接服務(wù)端,在現(xiàn)實生活中用得比較多。同時執(zhí)行多項任務(wù),第一想到的當(dāng)然是多線程了。下面用多線程來實現(xiàn)并發(fā)多連接。
    import java.net.*;
    import java.io.*;
    public class ThreadServer extends Thread
    {
    private Socket client;
    public ThreadServer(Socket c)
    {
    this.client=c;
    }
    public void run()
    {
    try
    {
    BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
    PrintWriter out=new PrintWriter(client.getOutputStream());
    //Mutil User but can't parallel
    while (true)
    {
    String str=in.readLine();
    System.out.println(str);
    out.println("has receive....");
    out.flush();
    if (str.equals("end"))
    break;
    }
    client.close();
    }
    catch (IOException ex)
    {
    }
    finally
    {
    }
    }
    public static void main(String[] args)throws IOException
    {
    ServerSocket server=new ServerSocket(8000);
    while (true)
    {
    //transfer location change Single User or Multi User
    ThreadServer mu=new ThreadServer(server.accept());
    mu.start();
    }
    }