package CHAPTER14;

import java.io.*;
import java.net.*;

public class LAB01_SystemMonitorServer {
    public static void main(String[] args) throws IOException {
        // 포트 8000에서 클라이언트 요청을 수신할 서버 소켓 생성
        ServerSocket serverSocket = new ServerSocket(8000);
        System.out.println("모니터링 서버 실행 중...");

        // 무한 루프로 클라이언트의 연결을 기다림
        while (true) {
            // 클라이언트 연결 수락
            Socket socket = serverSocket.accept();

            // 클라이언트별로 독립적인 처리 스레드 시작
            new Thread(() -> {
                try (BufferedReader in = new BufferedReader(
                        new InputStreamReader(socket.getInputStream()));) {

                    String line;
                    // 클라이언트로부터 메시지를 수신하여 출력
                    while ((line = in.readLine()) != null) {
                        System.out.println("클라이언트 상태: " + line);
                    }

                } catch (IOException e) {
                    System.out.println("클라이언트 연결 종료");
                }
            }).start(); // 스레드 시작
        }
    }
}

