package org.jeecg.modules.dry.socket; import lombok.extern.slf4j.Slf4j; import org.checkerframework.checker.units.qual.C; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @Slf4j public class SocketServerConfig { public static ServerSocket serverSocket = null; public static ConcurrentHashMap clientMap = new ConcurrentHashMap<>(); private static final ThreadPoolExecutor threadpool = new ThreadPoolExecutor(15, 15, 10L, TimeUnit.SECONDS, new LinkedBlockingQueue()); public void createSocket() { new Thread(() -> { try { serverSocket = new ServerSocket(1115); log.info("开启socket监听,端口:1115"); while (true) { Socket socket = serverSocket.accept(); clientMap.put(socket.getRemoteSocketAddress().toString(), socket); log.info("接收到客户端连接:" + socket.getRemoteSocketAddress()); threadpool.execute(new ServerReceiveThread(socket)); } }catch (IOException e) { log.error("socket服务启动异常"); e.printStackTrace(); } }).start(); } }