JAVA多線程----用--進階--》網絡編程1

http://www.cnblogs.com/springcsc/archive/2009/12/03/1616413.htmlhtml

一個服務器端通常都須要同時爲多個客戶端提供通信,若是須要同時支持多個客戶端,則必須使用前面介紹的線程的概念。簡單來講,也就是當服務器端接收到一個鏈接時,啓動一個專門的線程處理和該客戶端的通信。java

1(無線程池)spring

import java.net.ServerSocket;服務器

import java.net.Socket;socket

public class MulThreadSocketServer {.net

         public static void main(String[] args) {線程

                   ServerSocket serverSocket = null;server

                   Socket socket = null;htm

                   //監聽端口號blog

                   int port = 10000;

                   try {

                            //創建鏈接

                            serverSocket = new ServerSocket(port);

                            System.out.println("服務器已啓動:");

                            while(true){

                                     //得到鏈接

                                     socket = serverSocket.accept();

                                     //啓動線程

                                     new LogicThread(socket);

                            }

                   } catch (Exception e) {

                            e.printStackTrace();

                   }finally{

                            try{

                                     //關閉鏈接

                                     serverSocket.close();

                            }catch(Exception e){}

                   }

         }

}

         在該示例代碼中,實現了一個while形式的死循環,因爲accept方法是阻塞方法,因此當客戶端鏈接未到達時,將阻塞該程序的執行,當客戶端到達時接收該鏈接,並啓動一個新的LogicThread線程處理該鏈接,而後按照循環的執行流程,繼續等待下一個客戶端鏈接。這樣當任何一個客戶端鏈接到達時,都開啓一個專門的線程處理,經過多個線程支持多個客戶端同時處理。

         下面再看一下LogicThread線程類的源代碼實現:(接下一篇)

相關文章
相關標籤/搜索