16장
1. 네트워킹의 기본 개념
네트워킹(networking): 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크(network)를 구성하는 것
클라이언트/서버: 컴퓨터 간의 관계를 역할로 구분
서버(Server): 서비스를 제공하는 컴퓨터(내지는 컴퓨터 프로그램)
클라이언트(Client): 서비스를 사용하는 컴퓨터(내지는 컴퓨터 프로그램)
서버 기반 모델(server-based model): 네트워크를 구성할 때 전용 서버를 두는 모델
P2P 모델(Peer-to-peer model) 각 클라이언트가 서버 역할을 동시에 수행하는 모델
IP 주소(IP address): 컴퓨터를 식별하기 위해 사용하는 고유한 값
URL(Uniform Resource Locater, 통합 자원 식별자): 인터넷에 존재하는 리소스에 접근할 수 있는 주소
프로토콜(Protocol): 리소스에 접근하기 위해 서버와 통신하는데 사용하는 통신 규약
호스트명(Hose name): 자원을 제공하는 서버의 이름
포트번호(Port number): 통신에 사용하는 서버의 포트 번호
경로명(Locater): 접근하려는 리소스가 저장된 서버의 위치
파일명(File name): 접근하려는 자원의 이름
쿼리(query): URL에서 '?' 이후 부분
참조(anchor): URL에서 '#' 이후 부분
소켓 프로그래밍: 소켓을 이용한 통신 프로그래밍
1.1. 네트워크 주소와 호스트 주소 식별

2. java.net 클래스의 하위 클래스
2.1. InetAddress 클래스
Class Description
Note
All Implemented Interfaces: Serializable Direct Known Subclasses: Inet4Address, Inet6Address
Block
인터넷 프로토콜(IP) 주소를 나타내는 클래스
Note
Since
1.0
2.2. URL 클래스
Block
WWW의 'resource'를 가리키는 포인터인 URL을 나타내는 클래스
Note
Since
1.0
2.3. URLConnection 클래스
Block
- 애플리케이션과 URL 간의 통신 링크를 나타내는 모든 클래스의 수퍼클래스 - 이 클래스의 인스턴스는 URL이 참조하는 리소스에서 읽고 쓰는 데 모두 사용
Note
Since
1.0
See Also
URL.openConnection(), connect(), getContent(), getContentEncoding(), getContentLength(), getContentType(), getDate(), getExpiration(), getHeaderField(int), getHeaderField(java.lang.String), getInputStream(), getLastModified(), getOutputStream(), setAllowUserInteraction(boolean), setDefaultUseCaches(boolean), setDoInput(boolean), setDoOutput(boolean), setIfModifiedSince(long), setRequestProperty(java.lang.String, java.lang.String), setUseCaches(boolean)
2.4. Socket 클래스
Class Description
Note
All Implemented Interfaces: Closeable, AutoCloseable Direct Known Subclasses: SSLSocket
Block
- 클라이언트 소켓(그냥 "소켓"이라고도 함)을 구현하는 클래스 - 소켓의 실제 작업은 SocketImpl 클래스의 인스턴스가 수행
Note
Since
1.0
2.5. ServerSocket 클래스
Class Description
Note
All Implemented Interfaces: Closeable, AutoCloseable Direct Known Subclasses: SSLServerSocket
Block
- 서버 소켓을 구현하는 클래스 - 네트워크를 통해 들어오는 요청을 기다리고 요청에 따른 연산을 수행한 후 결과 반환
Note
Since
1.0
3. 소켓 프로그래밍
3.1. TCP와 UDP
연결방식
연결 기반(connection-oriented) - 연결 후 통신(전화기) - 1:1 통신방식
비연결기반(connectionless-oriented) - 연결 없이 통신(소포) - 1:1, 1:n, n:n 통신 방식
특징
데이터의 경계를 구분하지 않음(byte-stream) 신뢰성 있는 데이터 전송 - 데이터의 전송 순서 보장 - 데이터의 수신 여부 확인 (손실되면 재전송) UDP보다 전송 속도가 느림
데이터의 경계 구분(datagram) 신뢰성 없는 데이터 전송 - 데이터의 전송 순서가 바뀔 수 있음 - 데이터 수신 여부 확인(x) (데이터 손실 알 수 없음) - 패킷 관리 필요 TCP보다 전송 속도가 빠름
관련 클래스
- Socket - ServerSocket
- DatagramSocket - DatagramPacket - MulticaseSocket
3.2. TCP와 UDP 소켓 프로그래밍 예시


참고 자료
자바의 정석 - 도우출판
Last updated