/**
* 启动项目后就创建Server Socket服务
*/
@PostConstruct
public void runServerSocket() {
try {
ExecutorService executorService = Executors.newFixedThreadPool(10);// 创建线程池
ServerSocket serverSocket = new ServerSocket(9090);// 在设备上配置的服务端监听端口为9090
executorService.execute(()->{
while (true) {
try {
Socket socket = serverSocket.accept();
InputStream in = socket.getInputStream();// 获取输入流,用来读取数据
byte[] data = new byte[128];
in.read(data);
String dataStr = new String(data,"utf-8");
System.out.println(dataStr);
in.close();
socket.close();
executorService.shutdown();
} catch (Exception e) {
executorService.shutdown();
} finally {
executorService.shutdown();
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
该代码创建了一个使用固定大小线程池的Java服务,监听9090端口。每当有连接请求时,它接受Socket连接,读取UTF-8编码的输入流数据并打印,然后关闭连接。程序包含异常处理和线程池的关闭逻辑。
5153

被折叠的 条评论
为什么被折叠?



