반응형

TCP 기반 Server, Client의 함수 호출 관계

 

 

지금까지 TCP 서버, TCP 클라이언트 프로그램의 구현순서를 배웠다.

 

사실 이 둘은 서로 독립된 과정이 아니기 때문에 하나의 과정으로 머릿속에 그릴 수 있어야 한다.

 

그래서 이 두 과정을 하나의 그림으로 정리해보면 아래와 같다

 

-

 

 

-

 

전체적인 흐름을 정리하면

 

서버는 소켓 생성 이후 bind 함수 listen 함수를 연이어 호출하여 대기 상태에 들어가고

 

클라이언트 connect 함수호출을 통해 연결요청 한다.

 

참고로 클라이언트는 서버 소켓의 listen 함수 호출 이후에 connect 함수 호출이 가능하다.

 

게다가 클라이언트가 connect 함수를 호출하기에 앞서 서버가 accept 함수를 먼저 호출할 수 있다.

 

물론 이 상황에서는 클라이언트 connect 함수를 호출할 때까지

 

서버 accept 함수가 호출된 위치에서 블로킹(Blocking) 상태에 놓이게 된다.

 

반응형

+ Recent posts