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를 리턴한다
참고링크
'네트워크 > MAN Page' 카테고리의 다른 글
[unistd.h]fork(2) (0) | 2020.10.13 |
---|---|
[sys/socket.h] listen(2) (0) | 2020.09.23 |
[sys/socket.h] bind(2) (0) | 2020.09.23 |
[sys/socket.h] connect(2) (0) | 2020.09.23 |
[sys/socket.h] socket(2) (0) | 2020.09.23 |