소켓 통신 실행 흐름
클라이언트-서버 통신 모델
더보기


Network

네트워크로 연결되어 있는 서로 다른 두 컴퓨터가 데이터를 주고 받을 수 있도록 하는 것으로 물리적인 연결이 필요하다.
클라이언트-서버 통신 모델

대부분 네트워크 프로그램은 클라이언트-서버(C/S) 모델로 구현되는데 서비스를 받는 클라이언트의 요구(request)에 대하여 서비스를 제공하는 서버가 응답(response)을 보내는 방식으로 동작이 이루어진다.
소켓 통신 실행 흐름
더보기


클라이언트(Client) 흐름 | 서버(Server) 흐름 | ||
[1]생성 | 1. 클라이언트 소켓* 생성 | [1]생성 | 1. 서버 소켓* 생성 |
[2]결합 | 2. 서버 소켓에 IP 주소와 Port 번호 결합 | ||
[3]대기 | 3. 클라이언트 요청 대기 | ||
[2]연결 | 2. 서버로 연결 요청 | ||
[4]수락 | 4. 클라이언트 요청 정보와 서버 소켓 정보를 결합해 연결 소켓* 을 생성 | ||
[3]송수신 | 3. 서버 소켓에서 연결 수락 후, 데이터 송수신 | [5]송수신 | 5. 연결 소켓을 통한 데이터를 송수신 |
[4]닫음 | 4. 통신이 완료되면, 소켓 닫음 | [6]닫음 | 6. 통신이 완료되면, 연결 소켓을 닫음 |
* 서버 소켓은, 일반적으로 다수의 클라으언트 소켓으로부터 연결 요청을 받는다.
* 클라이언트 소켓은, 서버와 연결 된 뒤, 별도의 소켓을 생성하지 않고, 같은 소켓을 사용한다.
* 연결 소켓은, 서버 소켓에서 클라이언트와 연결된 연결 소켓으로 서버 소켓과 다르다.