1-2 단계: 네트워크 프로그래밍 단계별 동작 구조

2. 단계별 동작 구조
: 전통적인 BSD Socket API(C/C++) 기준의 정석적인 흐름
더보기


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