다음을 통해 공유


이름 확인 함수 요약

이름 확인 함수는 서비스 설치, 클라이언트 쿼리 및 도우미(매크로 포함)의 세 가지 범주로 그룹화할 수 있습니다. 다음 섹션에서는 각 범주의 함수를 식별하고 의도한 용도를 간략하게 설명합니다. 주요 데이터 구조도 설명합니다.

서비스 설치

필수 서비스 클래스가 없는 경우 애플리케이션은 WSAInstallServiceClass 를 사용하여 서비스 클래스 이름, 서비스 클래스 식별자에 대한 GUID 및 일련의 WSANSCLASSINFO 구조를 제공하여 새 서비스 클래스를 설치합니다. 이러한 구조는 각각 특정 네임스페이스에만 적용되며 권장되는 TCP 포트 번호 또는 NetWare SAP 식별자와 같은 일반적인 값을 제공합니다. WSARemoveServiceClass를 호출하고 클래스 식별자에 해당하는 GUID를 제공하여 서비스 클래스를 제거할 수 있습니다.

서비스 클래스가 있으면 WSASetService를 통해 서비스의 특정 인스턴스를 설치하거나 제거할 수 있습니다. 이 함수는 WSAQUERYSET 구조를 작업 코드 및 작업 플래그와 함께 입력 매개 변수로 사용합니다. 작업 코드는 서비스가 설치 또는 제거되고 있는지 여부를 나타냅니다. WSAQUERYSET 구조체는 서비스 클래스 식별자, 서비스 이름(이 instance), 해당 네임스페이스 식별자 및 프로토콜 정보, 서비스가 수신 대기하는 전송 주소 집합을 포함하여 서비스에 대한 모든 관련 정보를 제공합니다. 서비스는 동적 네임스페이스에서 현재 상태를 보급하기 위해 초기화할 때 WSASetService 를 호출해야 합니다.

클라이언트 쿼리

WSAEnumNameSpaceProviders 함수를 사용하면 애플리케이션에서 Winsock 이름 확인 기능을 통해 액세스할 수 있는 네임스페이스를 검색할 수 있습니다. 또한 애플리케이션은 지정된 네임스페이스가 둘 이상의 네임스페이스 공급자에서 지원되는지 여부를 확인하고 특정 네임스페이스 공급자에 대한 공급자 식별자를 검색할 수 있습니다. 애플리케이션은 공급자 식별자를 사용하여 쿼리 작업을 지정된 네임스페이스 공급자로 제한할 수 있습니다.

Winsock 네임스페이스-쿼리 작업에는 일련의 호출이 포함됩니다. WSALookupServiceBegin, WSALookupServiceNext 에 대한 하나 이상의 호출 및 WSALookupServiceEnd 호출로 끝납니다. WSALookupServiceBeginWSAQUERYSET 구조를 입력으로 사용하여 검색 작업에 대한 추가 제어를 제공하기 위해 플래그 집합과 함께 쿼리 매개 변수를 정의합니다. WSALookupServiceNext 및 WSALookupServiceEnd에 대한 후속 호출에 사용되는 쿼리 핸들 반환합니다.

애플리케이션은 WSALookupServiceNext 를 호출하여 애플리케이션 제공 WSAQUERYSET 버퍼에 제공된 결과와 함께 쿼리 결과를 가져옵니다. 애플리케이션은 모든 결과가 검색되었음을 나타내는 오류 코드 WSA_E_NO_MORE 반환될 때까지 WSALookupServiceNext 를 계속 호출합니다. 그런 다음 WSALookupServiceEnd에 대한 호출로 검색이 종료됩니다. WSALookupServiceEnd 함수를 사용하여 다른 스레드에서 호출될 때 현재 보류 중인 WSALookupServiceNext를 취소할 수도 있습니다.

Windows 소켓 2에서 충돌하는 오류 코드는 WSAENOMORE(10102) 및 WSA_E_NO_MORE(10110)에 대해 정의됩니다. 오류 코드 WSAENOMORE는 이후 버전에서 제거되며 WSA_E_NO_MORE 유지됩니다. 그러나 Windows 소켓 2의 경우 애플리케이션은 둘 중 하나를 사용하는 네임스페이스 공급자와의 가능한 가장 광범위한 호환성을 위해 WSAENOMORE 및 WSA_E_NO_MORE 모두에 대해 검사 합니다.

도우미 함수

이름 확인 도우미 함수에는 서비스 클래스 식별자가 지정된 서비스 클래스 이름을 검색하는 함수, SOCKADDR 구조와 ASCII 문자열 표현 간에 전송 주소를 변환하는 데 사용되는 함수 쌍, 지정된 서비스 클래스에 대한 서비스 클래스 스키마 정보를 검색하는 함수 및 잘 알려진 서비스를 미리 할당된 GUID에 매핑하기 위한 매크로 집합이 포함됩니다.

Winsock2.h의 다음 매크로는 잘 알려진 서비스 클래스와 이러한 네임스페이스 간의 매핑을 지원합니다.

매크로 설명
SVCID_TCP(포트) SVCID_UDP(포트)
SVCID_NETWARE(개체 형식)
TCP/IP 또는 UDP/IP에 대한 포트 또는 NetWare의 경우 개체 형식이 지정된 경우 GUID(호스트 순서의 포트 번호)를 반환합니다.
IS_SVCID_TCP(GUID)IS_SVCID_UDP(GUID)
IS_SVCID_NETWARE(GUID)
GUID가 허용 범위 내에 있으면 TRUE 를 반환합니다.
SET_TCP_SVCID(GUID, 포트)SET_UDP_SVCID(GUID, 포트)
TCP 또는 UDP 포트 번호에 해당하는 GUID를 사용하여 GUID 구조를 초기화합니다(포트 번호는 호스트 순서여야 합니다).
PORT_FROM_SVCID_TCP(GUID)PORT_FROM_SVCID_UDP(GUID)
SAPID_FROM_SVCID_NETWARE(GUID)
GUID와 연결된 포트 또는 개체 형식(호스트 순서의 포트 번호)을 반환합니다.

 

getaddrinfo

GetAddrInfoEx

GetAddrInfoW

getnameinfo

GetNameInfoW

이름 확인 데이터 구조

이름 확인 모델

프로토콜 독립적 이름 확인

등록 및 이름 확인

SOCKADDR

WSAEnumNameSpaceProviders

WSAGetServiceClassNameByClassId

WSAInstallServiceClass

WSALookupServiceBegin

WSALookupServiceEnd

WSALookupServiceNext

WSARemoveServiceClass

WSASetService

WSAQUERYSET

WSANSCLASSINFO