지식조각모음
16. 네트워킹 본문
반응형
- 네트워킹: 두 대 이상의 컴퓨터를 케이블로 연결하여 네크워크를 구성하는 것
- 클라이언트: 서비스를 사용하는 컴퓨터
- 서버로부터 서비스를 제공받기 위해서는 웹브라우저, FTP 클라이언트 프로그램 등이 필요
- 서버: 서비스를 제공하는 컴퓨터
- FTP 서버 프로그램, Tomcat 같은 웹서버 프로그램을 설치하여 서버 역할 수행
- 서비스: 서버가 클라이언트로부터 요청받은 작업을 처리하여 결과를 제공하는 모든 것
IP 주소
- 컴퓨터를 구별하는 고유한 값
- 4byte 정수로 구성
- 네트워크 주소와 호스트 주소로 구분
- 네트워크 주소가 차지하는 자리수가 많을수록 호스트 주소의 범위가 줄어든다
- 네트워크 주소가 같다 = 같은 네트워크에 포함되어 있다
- IP주소와 서브넷 마스크를 비트연산자 '&'로 연산하면 네트워크 주소를 알 수 있음
URL
인터넷에 존재하는 여러 서버들이 제공하는 자원에 접근할 수 있는 주소를 표한하기 위한 것http://www.codechobo.com:80/sample/hello.html?referer=codechobo#index1
- 프로토콜: 자원에 접근하기 위해 서버와 통신하는데 사용되는 통신 규약(http)
- 호스트명: 자원을 제공하는 서버의 이름(www.codechobo.com)
- 포트번호: 통신에 사용되는 서버의 포트번호(80)
- 경로명: 접근하려는 자원이 저장된 서버상의 위치(/sample/)
- 파일명: 접근하려는 자원의 이름(hello.html)
- 쿼리: URL에서 '?'이후의 부분(refere=codechobo)
- 참조: URL에서 '#'이후의 부분(index1)
URLConnection 클래스
- URL 클래스 만들기
URL url = new URL("http://www.djWjrhwjWJrh.com/sample/hello_world.html");
- URLConnection 클래스: 어플리케이션과 URL간의 통신연결을 나타내는 추상클래스. 연결하고자하는 자원에 접근하여 읽고 쓰기가 가능하다
TCP와 UDP
- 소켓: 프로세스 간의 통신에 사용되는 양쪽 끝단(endpoint)
- TCP/IP 프로토콜: 이기종 시스템간의 통신을 위한 표준 프로토콜
| TCP | UDP | |
| 연결방식 | 연결 기반 | 비연결 기반 |
| 특징 | 데이터의 경계를 구분 안함(byte-stream) 신뢰성 있는 데이터 전송 |
데이터의 경게를 구분함(datagram) 신뢰성 없는 데이터 전송 |
| 관련 클래스 | Socket, ServerSocket | DatagramSocket, DatagramPacket, MulticastSocket |
TCP 소켓 프로그래밍
- 서버 프로그램은 클라이언트의 연결요청을 처리할 준비를 한다(서버소켓)
- 클라이언트 프로그램은 접속할 서버의 IP주소와 포트 정보로 소켓을 생성해서 서버에 연결 요청
- 서버 소켓은 클라이언트의 연결 요청이 들어오면 새로운 소캣을 만들어서 클라이언트 소켓과 연결
- 클라이언트의 연결요청마다 새로운 소켓을 생성한다
- 포트와 결합되어 있으며 포트를 독점한다
- 일대일 통신 가능(소켓과 소켓의 연결)
- 실제 데이터 통신이 일어나는 곳
- 입출력 스트림을 통해 데이터를 주고 받는다
Socket과 ServerSocket
- socket: 프로세스간의 통신 담당. InputStream, OutputStream을 가지며 이 스트림을 통해 프로세스간의 통신이 이루어짐
- serverSocket: 포트와 연결되어 외부의 연결요청이 들어오면 소켓을 생성
UDP 소켓 프로그래밍
DatagramSocket과 DatagramPacket을 사용
- DatagramPacket: 헤더와 데이터로 구성
- 헤더: DatagramPacket을 수신할 호스트의 정보 저장
- DatagramSocket: DatagramPacket에 지정된 주소
반응형
'책 > 자바의 정석' 카테고리의 다른 글
| 15. 입출력 (0) | 2022.04.09 |
|---|---|
| 14. 람다와 스트림 (2) | 2022.04.09 |
| 13. 스레드 (2) | 2022.03.30 |
| 12. 제네릭스, 열거형, 애너테이션 (0) | 2022.03.13 |
| Comparator와 Comparable (1) | 2022.03.10 |