🏁 IP 주소와 Port
- 컴퓨터를 구분하는 주소 : IP
- 컴퓨터 안에 있는 서버들을 구분하는 값 : Port
🏁 도메인 주소
🏁 localhost
🏁 IP 주소 알아내기
- inetAddress 로 알아낸다.
ex. InetAddress ia =InetAddress.getlocalhost();//내 컴퓨터의 IP정보를 구한다.
ex.
InetAddress[] iaArray = InetAddress.getAllByName("www.google.com");
🏁 Clinet&Server 프로그래밍
- Socket : Server에 접속을 하는 역할
- ServerSocket : Client가 접속 요청을 기다리는 역할
- Client 요청을 기다리다가 접속을 하면 Socket을 반환한다.
- Socket과 Socket간에는 IO객체를 이용하여 통신할 수 있다.
브라우저 요청 결과를 출력하는 Server 프로그램 작성하기
- http://ip:port 주소로 브라우저는 요청을 보낼 수 있다. (= 서버 포트 번호 필요해)
- ServerSocket은 특정 port로 접속 요청을 기다릴 수 있다. (= accept())
- 브라우저는 서버와 연결되면 요청 정보를 전송한다.
- 서버는 브라우저가 보내는 요청 정보를 읽어들인 후, 그 결과를 출력할 수 있다.

<코드>

Run 값

어려운 점 공부 내용
👀 1. 예외처리를 하는 이유
-
BufferedReader의 readLine() 메서드처럼 파일 입출력과 관련된 작업은 다양한 예외상황이 발생할 수 있기 때문에, 이러한 예외 상황을 적절하게 처리하지 않으면 프로그램이 비정상적으로 종료할 수 있다.
-
따라서 예외처리를 통해 상황을 사전에 인지하고, 프로그램이 정상적으로 처리할 수 있도록 대응하는 것
+Java에서는 try-catch 블록을 사용하여 예외 처리를 구현할 수 있습니다.
👀 2. JAVA IO (입출력) 클래스와 메서드들이 낯설다. ❓
👀 3. ArrayList인 List 인터페이스가 낯설다.
👀 4. 클라이언트로부터의 요청을 읽어들일 때, -1 만날때 요청 읽기 끝이 아닌 null을 만날 때 요청 읽기 끝? 왜?**
👀 5. String의 equals 함수 완벽하게는 모르겠다.
- 사용 형태 : "문자열".equals("문자열")
- 문자열이 서로 100% 일치해야만 true가 리턴된다.
(생략된) 코드 import의 정확히 모르는 부분 설명
- import (ServerSocket, Socket 등)
- 다른 패키지 안의 클래스를 사용하기 위해서는 클래스 이름 앞에 패키지를 붙여야 합니다.
- 파일의 앞머리에 임포트(import)라는 작업으로 패키지를 매번 입력하는 단점을 없애 줄 수 있습니다.
- Ctrl + Shift + O 를 눌러기 -> 패키지 자동 생성