자바 - Java/이론
[Java] Java Programming - 네트워크 프로그래밍, Server, Client, 프로토콜, Socket, Server Socket, Stream
totoscoming
2020. 4. 2. 17:03
네트워크 프로그래밍
서버: 서비스 제공자(장치)
클라이언트: 서비스 이용자(제공받는 장치)
IP
- 네트워크 상에서 장치를 식별하는 고유 주소 값
Port
- 장치 내에서 서비스를 식별하는 고유 번호 값
- 네트워크에서 오는 데이터를 어떤 프로세스에 보내야 할지 식별해 줌
- 서버 만드는 사람이 포트 번호 정함
- 1~1024 포트는 Well-known 포트이기 때문에 사용 자제
프로토콜
- 통신 방법을 정해 놓은 규칙
- TCP(Transmission Control Protocol)
- 안정성을 중시함
- But 상대적으로 성능(속도) 떨어짐
- UDP(User Datagram Protocol)
- 성능(속도)를 중시함
- 상대적으로 데이터 안정성이 떨어짐
- 동영상 스트리밍
Socket
- 네트워크 프로그램 내에서 통신을 위해 필수적으로 필요한 논리적 단말기
- 데이터 통신을 제외한 세션의 연결(통신 정보의 교환)까지만을 담당
- IP, Port, Protocol 등으로 소켓을 정의함
- 프로세스가 데이터를 주고받기 위해 반드시 열려야 하는 창구 같은 것
Stream
- 네트워크 프로그램에서 실질적 데이터 통신을 담당하는 논리적 통로
- 보내는 사람의 Output Stream과 받는 사람의 Input Stream이 연결되어야 데이터 주고받을 수 있음
ServerSocket
- 서버는 기본적으로 1 대 n 소통
- 서버 전용 소켓
- 접속과 동시에 소켓을 만들어내는 것
- 즉, 서버 측 네트워크 프로그램이 n 대의 클라이언트와 통신하기 위해 Socket을 생성할 수 있도록 이용하는 객체