package com.inmind.student.黄越; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Map; public class LogServer { public static void main(String[] args) { try (ServerSocket serverSocket = new ServerSocket(8080)) { System.out.println("LogServer started, listening on port 8080"); while (true) { Socket socket = serverSocket.accept(); try (ObjectInputStream ois = new ObjectInputStream(socket.getInputStream()); ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream())) { Map levelCountMap = (Map) ois.readObject(); Map errorModuleCountMap = (Map) ois.readObject(); Log[] earliestLogs = (Log[]) ois.readObject(); System.out.println("1. 按级别统计:"); levelCountMap.forEach((level, count) -> { String color = "ERROR".equals(level) ? "\u001B[43m" : ("WARNING".equals(level) ? "\u001B[43m" : "\u001B[37m"); System.out.println(color + level + ": " + count + "条" + "\u001B[0m"); }); System.out.println("\n2. 按模块错误统计:"); errorModuleCountMap.forEach((module, count) -> System.out.println(module + ": " + count + "条错误")); System.out.println("\n3. 最早的3条日志:"); for (int i = 0; i < earliestLogs.length; i++) { Log log = earliestLogs[i]; String color = i == 1 ? "\u001B[43m" : (i == 2 ? "\u001B[43m" : "\u001B[37m"); System.out.println(color + log + "\u001B[0m"); } oos.writeObject("上报成功"); } catch (Exception e) { System.out.println("Server error: " + e.getMessage()); } } } catch (Exception e) { System.out.println("Server socket error: " + e.getMessage()); } } }