더북(TheBook)

backlog에는 들어오는 연결을 대기열에 둘 최대 숫자를 지정한다. 대기열이 가득 차면 그 이후로 들어오려는 연결은 끊어진다. 기본값을 사용하려면 SOMAXCONN을 넣어주자.

이 함수는 성공 시 0을, 에러가 있으면 -1을 리턴한다.

들어오는 연결을 받아 TCP 핸드셰이킹을 계속 진행하려면 accept()를 호출한다.

SOCKET accept(SOCKET sock, sockaddr* addr, int* addrlen);

sock은 리스닝 모드의 소켓으로, 여기서 들어오는 요청을 받게 된다.

addraccept() 함수가 연결을 요청하는 원격 호스트의 주소를 채워줄 sockaddr 구조체 포인터이다. recvfrom() 함수 때와 마찬가지로 이 구조체는 미리 초기화해 줄 필요가 없으며 accept()의 동작을 제어하는 기능도 없다. 수락된 연결의 주소를 받는 용도로만 사용된다.

addrlenaddr 버퍼의 포인터 길이를 반환하는 용도로 사용된다. 역시 addr 내용이 채워질 때만 그 길이가 addrlen에 채워진다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.