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线程类的源代码实现:(接下一篇)

相关文章
相关标签/搜索