소켓 바인딩
서버가 클라이언트 연결을 허용하려면 시스템 내의 네트워크 주소에 바인딩되어야 합니다. 다음 코드는 이미 만들어진 소켓을 IP 주소 및 포트에 바인딩하는 방법을 보여 줍니다. 클라이언트 애플리케이션은 IP 주소와 포트를 사용하여 호스트 네트워크에 연결합니다.
소켓을 바인딩하려면
sockaddr 구조체는 주소 패밀리, IP 주소 및 포트 번호에 대한 정보를 보유합니다.
bind 함수를 호출하여 getaddrinfo 함수에서 반환된 생성된 소켓 및 sockaddr 구조를 매개 변수로 전달합니다. 일반적인 오류를 확인합니다.
// Setup the TCP listening socket
iResult = bind( ListenSocket, result->ai_addr, (int)result->ai_addrlen);
if (iResult == SOCKET_ERROR) {
printf("bind failed with error: %d\n", WSAGetLastError());
freeaddrinfo(result);
closesocket(ListenSocket);
WSACleanup();
return 1;
}
bind 함수가 호출되면 getaddrinfo 함수에서 반환된 주소 정보가 더 이상 필요하지 않습니다. freeaddrinfo 함수는 이 주소 정보에 대해 getaddrinfo 함수에 의해 할당된 메모리를 해제하기 위해 호출됩니다.
freeaddrinfo(result);
다음 단계: 소켓에서 수신 대기
관련 항목