Java 강의 [네트워크 프로그래밍 1]

·2023년 7월 21일

java 공부

목록 보기
12/13
post-thumbnail

🏁 IP 주소와 Port

  • 컴퓨터를 구분하는 주소 : IP
  • 컴퓨터 안에 있는 서버들을 구분하는 값 : Port

🏁 도메인 주소

  • IP 주소를 대신하는 역할

🏁 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 (입출력) 클래스와 메서드들이 낯설다.

  • 1번 라인 : InputStreamReader 클래스

    • InputStreamReader란?
      -> byte 대신 char 형태로 읽을 수 있다 -> 아스키 코드가 아닌 문자열로 출력이 가능, String 객체로 변환할 수도 있다.
      -> HTTP 서버의 응답값 불러올 수 있다.
  • 2번 라인 : BufferedReader 클래스

    • BufferedReader란?

      -> \n과 같이 새로운 줄이 생기기 전(엔터 입력 전)까지 또는 내용이 너무 길어서 Stream이 꽉차서 null을 반환하기 전까지 모든 값을 저장한다.
      -> 예외처리 필수
      -> readLine() : 한 줄 단위로 데이터를 읽는다.

👀 3. ArrayList인 List 인터페이스가 낯설다.

  • 3번 라인 : ❓

👀 4. 클라이언트로부터의 요청을 읽어들일 때, -1 만날때 요청 읽기 끝이 아닌 null을 만날 때 요청 읽기 끝? 왜?**

  • HTTP의 마지막 줄은 null이다.

👀 5. String의 equals 함수 완벽하게는 모르겠다.

  • 사용 형태 : "문자열".equals("문자열")
  • 문자열이 서로 100% 일치해야만 true가 리턴된다.

(생략된) 코드 import의 정확히 모르는 부분 설명

  • import (ServerSocket, Socket 등)
    • 다른 패키지 안의 클래스를 사용하기 위해서는 클래스 이름 앞에 패키지를 붙여야 합니다.
    • 파일의 앞머리에 임포트(import)라는 작업으로 패키지를 매번 입력하는 단점을 없애 줄 수 있습니다.
    • Ctrl + Shift + O 를 눌러기 -> 패키지 자동 생성
profile
기회를 잡기 위해 준비하자 !

0개의 댓글