📄 connectionhandler.java
字号:
import java.util.*;import java.io.*;import java.net.*;public class ConnectionHandler implements Runnable { private Socket socket; private static String stopService = ""; private static List pools = new LinkedList(); private PrintWriter log = new PrintWriter(System.err, true); private static int checkOut = 0; private int maxConn; private static Service s; private Server server; private static boolean stop_flag = false; public ConnectionHandler(Server server) { this.server = server; } public void run() { while (true) { synchronized (pools) { while (pools.isEmpty()) { try {// log.println("线程" + Thread.currentThread().getName() + "正等待连接......"); pools.wait(); } catch (InterruptedException e) { log.println(e.getMessage()); } } socket = (Socket) pools.remove(0); server.addConnections(socket); checkOut++; } synchronized (this) { handleConnection(socket, s); } } } public static void requestToHandler(Socket socket, Service service) { s = service; synchronized (pools) { pools.add(pools.size(),socket); pools.notifyAll(); } } public static int getCurrentConnections() { return checkOut; } public void handleConnection(Socket socket, Service s) { try { InputStream in = socket.getInputStream(); OutputStream out = socket.getOutputStream(); s.serve(in, out); server.removeConnections(socket); checkOut--; } catch (IOException e) { } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -