본문 바로가기

[+] Information/[-] Network

[2009/05/30] TCP 기반 서버의 구현

1. 서버에서의 기본적인 함수 호출 순서



2. '연결 요청 대기 상태'로의 진입

 
- listen 함수는 전달되는 인자의 소켓을 '서버 소켓'이 되게 한다.

 - listen 함수는 '연결 요청 대기 큐'를 생성 한다.


#include <sys/type.h>

int listen (int s, int backlog);
(리눅스)

*int s : 서버 소켓 파일 디스크립터.

*int backlog : 연결 요청 대기 큐 크기 지정.


#include <winsock2.h>

int listen(SOCKET s, int backlog);
(윈도우)

* SOCKET s : 서버 소켓 파일 핸들.




3. 서버의 역할과 연결요청 대기상태

 
- 서버 소켓은 일종의 '문지기'이다.



4. 연결요청 수락하기.

 
- 연결요청 대기 큐(Queue)에 존재하는 클라이언트의 연결 요청 수락.


#include <sys/type.h>
#include <sys/socket.h>

int accpet(int s, struct sockaddr * addr, int *addrlen)
(리눅스)

* struct sockaddr * addr = 주소 정보 저장 구조체 변수의 포인터 지정.

* int *addrlen : 전달하는 구조체변수 데이터의 크기 지정


#include <winsock2.h>

SOCKET accept(SOCKET s, struct sockaddr FAR *addr, int FAR *addrlen);
(윈도우)