📄 serverpool.java~3~
字号:
package server.pool;
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.concurrent.*;
import java.util.Vector;
import java.util.Date;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2008</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class ServerPool implements Runnable{
private int port=8000;
private Vector userContainer=new Vector();
private Thread acceptClient=null;
private CloseBean closed;
private ServerSocket serverSocket;
private ExecutorService executorService;
private final int POOL_SIZE=4;
/**
* 默认构造函数
*/
public ServerPool() {
}
/**
* 启动服务器函数
* @throws IOException
*/
public void startServer()throws IOException{
closed=new CloseBean();
serverSocket = new ServerSocket(port);
executorService=Executors.newFixedThreadPool(POOL_SIZE);
acceptClient=new Thread(this);
acceptClient.setDaemon(true);
acceptClient.start();
System.out.println("服务器已启动...");
}
/**
* 关闭服务器函数
* @throws IOException
*/
public void closeServer()throws IOException{
closed.setClosed(true);
acceptClient=null;
userContainer.clear();
executorService.shutdown();
serverSocket.close();
serverSocket=null;
executorService=null;
System.out.println("服务器已关闭...");
}
/**
* 实现Runnable接口,用来接收客户端的连接
*/
public void run(){
System.out.println("守护进程已运行...");
while(!closed.isClosed()){
try {
Socket socket = serverSocket.accept();
executorService.execute(new WorkThread(socket,userContainer,closed));
System.out.println("服务器已接收到客户端...");
} catch (IOException ex) {
}
}
System.out.println("守护进程已关闭...");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -