다음을 통해 공유


소켓 바인딩

서버가 클라이언트 연결을 허용하려면 시스템 내의 네트워크 주소에 바인딩되어야 합니다. 다음 코드는 이미 만들어진 소켓을 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);

다음 단계: 소켓에서 수신 대기

윈삭과 함께하는 시작

Winsock Server 애플리케이션

서버에 대한 소켓 만들기