반응형

Server 프로그램 분석

 

 

 C Socket Programming 카테고리의 첫 번째 글부터 공부하신 분은

 

처음에 배웠던 Server 프로그램 구현과정 전체에 대해 이해했을 것입니다.

 

이 글에서는 마지막으로 한번 더 분석을 한번 해보는 글입니다.

 

중간에 모르시는 게 있다면 이전 강좌들을 다시 한번 보시고 오시면 되겠습니다.

 

-

 

server.c
0.00MB

 

 

 

-

 

※ 분석 ※

 

 

29 행 : 서버 프로그램 구현과정에서 제일 먼저 해야 할 일 소켓을 생성하는 것이다.

 

따라서 29 행에서는 소켓을 생성하고 있다.

 

이때 생성되는 소켓은 아직 서버 소켓이라 말할 수 없다.

 

그냥 소켓이란 것이 생성만 되었을 뿐이다.

 

-

 

31 ~ 36 행 : 소켓의 주소 할당을 위해 구조체 변수에 주소 정보를 담아 초기화하고

 

bind 함수를 호출한다.

 

-

 

38 행 : 연결 요청 대기상태로 들어가기 위해서 listen 함수를 호출하고 있다.

 

연결요청 대기 큐(방) 크기 5로 설정한다.

 

이제야29 행에서 생성한 소켓 서버 소켓이라고 말할 수 있다.

 

-

 

41 행 : accept 함수가 호출되었으니, 대기 큐(방)에서 첫 번째로 대기 중인 

 

연결 요청을 참조하여 클라이언트와의 연결을 구성하고

 

이때 생성된 소켓의 파일 디스크립터를 반환한다.

 

참고로 이 함수가 호출되었을 때 대기 큐(방)에 연결 요청이 없는 경우

 

연결요청이 들어올 때까지 accept 함수는 반환하지 않는다.

 

-

 

43 ~ 44 행 : write 함수 호출을 통해서 클라이언트에게 데이터를 전송하고 있다.

 

그러고 나서 close 함수 호출을 통해서 연결을 끊고 있다.

 

반응형

+ Recent posts