JAVA多线程----用--进阶--》网络编程1

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

一个服务器端一般都需要同时为多个客户端提供通讯,如果需要同时支持多个客户端,则必须使用前面介绍的线程的概念。简单来说,也就是当服务器端接收到一个连接时,启动一个专门的线程处理和该客户端的通讯。

1(无线程池)

import java.net.ServerSocket;

import java.net.Socket;

public class MulThreadSocketServer {

         public static void main(String[] args) {

                   ServerSocket serverSocket = null;

                   Socket socket = null;

                   //监听端口号

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

 

posted @ 2017-02-28 17:26  Tritone  阅读(216)  评论(0编辑  收藏  举报