소켓 프로그래밍 : 네트워크 애플리케이션 생성
클라이언트와 서버는 소켓을 통해 읽고 쓰기를 통해 서로 통신함.
클라이언트-서버 애플리케이션을 개발하는데 연결 방식이 2가지가 있다.
1 ) tcp – 연결지향형, 신뢰적 바이트 스트림 채널 제공
2 ) udp – 비연결형 / 전송 보장 하지 않음.
<UDP를 이용한 소켓 프로그래밍>
서버는 소켓을 생성해 클라이언트의 요청을 대기 중
클라이언트는 소켓을 생성해 서버로 보냄(목적지 주소를 포함함)
서버는 소켓을 읽고 특정 포트 번호를 포함해 소켓에 할당, 클라이언트에 전달함.
(포트가 필요한 이유는 호스트가 하나 혹은 그 이상의 소켓을 갖는 많은 네트워크 애플리케이션 프로세스를 수행하고 있을 수 있기 때문에 특정 소켓을 식별할 필요가 있음)
TCP 소켓 프로그래밍
서버와 클라이언트는 핸드 쉐이크 과정을 거쳐야함
이 때 클라이언트는 UDP와 마찬가지로 소켓을 미리 생성, 준비하고 있어야함.
클라이언트는 소켓을 생성해 클라이언트로 보냄(이 때 IP주소와 포트 번호 명시)
핸드 쉐이크 이후 새로운 소켓을 생성(정보를 요청하기 위함)
[참조] Computer Networking: A Top Down Approach - J.F Kurose and K.W. Ross