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 개 이상의 소켓을 다루는 부분은 이후에 다룸