본문 바로가기

컴퓨터/C

C accept()

I. syntax

#include <sys/socket.h>

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

II. return

성공 시 생성된 소켓의 파일 디스크립터, 실패 시 -1 반환

III. parameters

1. int sock

서버 소켓의 파일 디스크립터 전달.

2. struct sockaddr* addr

연결요청 한 클라이언트의 주소정보를 담을 변수(clnt_adr)의 주소 값 전달, 함수호출이 완료되면 인자로 전달된 주소의 변수에는 클라이언트의 주소정보가 채워진다.

(struct sockaddr*)&clnt_adr

3. socklen_t* addrlen

두 번째 매개변수 addr에 전달된 주소의 변수 크기를 바이트 단위로 전달, 단 크기정보를 변수에 저장한 다음에 변수의 주소 값을 전달한다. 그리고 함수호출이 완료되면 크기정보로 채워져 있던 변수에는 클라이언트의 주소정보 길이가 바이트 단위로 계산되어 채워진다.

socklent_t clnt_adr_sz;
clnt_adr_sz=sizeof(clnt_adr); //&clnt_adr_sz 사용

'컴퓨터 > C' 카테고리의 다른 글

C atoi()  (0) 2022.11.06
C connect()  (0) 2022.11.05
C listen()  (0) 2022.11.05
C 네트워크 주소 정보의 표현  (0) 2022.11.04
C bind()  (0) 2022.11.04