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<String, Socket> clientMap = new ConcurrentHashMap<>();
|
|
|
private static final ThreadPoolExecutor threadpool = new ThreadPoolExecutor(15, 15,
|
10L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
|
|
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();
|
|
}
|
}
|