package CHAPTER14;

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

class LAB01_SystemMonitorClient {
    public static void main(String[] args) {
        try {
            // 서버("localhost")에 포트 8000으로 연결
            Socket socket = new Socket("localhost", 8000);
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

            // 무한 루프: 2초마다 메모리 상태를 측정하여 전송
            while (true) {
                // 현재 JVM에서 사용 가능한 메모리 정보 계산 (MB 단위)
                long free = Runtime.getRuntime().freeMemory() / (1024 * 1024);
                long total = Runtime.getRuntime().totalMemory() / (1024 * 1024);

                // 서버에 메모리 사용 정보 전송
                out.println("메모리 사용량: " + (total - free) + "MB / " + total + "MB");

                // 2초 대기
                Thread.sleep(2000);
            }

        } catch (Exception e) {
            e.printStackTrace(); // 예외 발생 시 출력
        }
    }
}
