2020. 11. 19. 12:29

bind 함수


소켓을 인터넷 주소에 묶어주기 위해서 사용


서버 프로그램은 어떤 포트에서 기다릴지 명시해야 함


그래야 클라이언트 프로그램은 그 포트로 찾아갈 수 있음



int bind(int sockfd, struct sockaddr* my_addr, socklen_t  addrlen);


struct sockaddr_in addr;


addr.sin_family = AF_INET;


addr.sin_addr.s_addr = htonl(INADDR_ANY); // 어떠한 IP 든지 기다림


addr.sin_port = htons(8080);


state = bind(sockfd, (struct sockaddr*)&addr, sizeof(addr));





listen 함수


 - 수신 대기열을 만든다


int listen(int queue_size);




accept 함수


 - 수신 대기열에서 연결을 가져온다


int accept(int s, 



이 함수를 성공하면 새로운 소켓을 만드는데 이 소켓은 클라이언트와 직접 연결된 소켓


이 소켓을 연결 소켓이라 부름


accept에서 매개변수에 사용되는 소켓은 요청을 듣기 위해 사용되는 소켓


듣기 소켓이라 부름


듣기 소켓과 연결 소켓을 구분하는 이유는 한 번에 여러 개의 소켓을 다루기 위함


동시에 2 개 이상의 소켓을 다루는 부분은 이후에 다룸