네트워크/MAN Page

[sys/socket.h] accept(2)

가을맛 2020. 9. 23. 23:30

accept(2)

소켓에 연결을 받아들인다.


1.1절. 사용법

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

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

1.2절. 설명

accept() 함수는 연결지향 소켓 타입 (SOCK_STREAM, SOCK_SEQPACKET, SOCK_RDM)에 사용된다. (e.g. TCP) 평상시에는 block되어있다가 3HSK이 성공하면 complete queue에서 해당 클라이언트 정보를 가져와서 connected socket을 만든다. 

 

sockfd 는 socket() 로 만들어진 end-point(듣기 소켓)을 위한 파일지정자이다.

addr 는 sockaddr 구조체에 대한 포인터이다. 연결이 성공되면 이 구조체를 채워서 되돌려 주게 되고, 우리는 이구조체의 정보를 이용해서 연결된 클라이언트의 인터넷 정보를 알아낼수 있다.

addrlen 인자는 addr의 크기 이다.

 


1.3절. 반환값

에러시 -1이 반환된다. 성공한다면  non-negative descriptor를 리턴한다 

참고링크

https://www.joinc.co.kr/w/man/2/accept