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