다음을 통해 공유


IP_MREQ_SOURCE 구조체(ws2ipdef.h)

ip_mreq_source 구조는 IPv4 주소에 대한 멀티캐스트 그룹 정보를 제공합니다.

구문

typedef struct ip_mreq_source {
  IN_ADDR imr_multiaddr;
  IN_ADDR imr_sourceaddr;
  IN_ADDR imr_interface;
} IP_MREQ_SOURCE, *PIP_MREQ_SOURCE;

멤버

imr_multiaddr

IPv4 멀티캐스트 그룹의 주소입니다.

imr_sourceaddr

IPv4 멀티캐스트 원본의 주소입니다.

imr_interface

멀티캐스트 그룹을 조인, 삭제, 차단 또는 차단 해제해야 하는 인터페이스 또는 인터페이스 인덱스의 로컬 IPv4 주소입니다. 이 값은 네트워크 바이트 순서입니다. 이 멤버가 0.0.0.0의 IPv4 주소를 지정하는 경우 기본 IPv4 멀티캐스트 인터페이스가 사용됩니다.

인터페이스 인덱스 1을 사용하는 것은 IP 주소 0.0.0.1과 동일합니다.

설명

ip_mreq_source 구조체는 IPv4 주소와 함께 사용됩니다. ip_mreq_source 구조는 IP_ADD_SOURCE_MEMBERSHIP, IP_BLOCK_SOURCE, IP_DROP_SOURCE_MEMBERSHIPIP_UNBLOCK_SOURCE 소켓 옵션과 함께 사용됩니다.

IPv4 멀티캐스트 프로그래밍에 사용되는 ip_mreq_source 구조 및 관련 구조는 RFC 3768의 섹션 4 및 8.1에서 IETF 권장 사항을 기반으로 합니다. 자세한 내용은 http://www.ietf.org/rfc/rfc3678.txt를 참조하세요.

Windows Vista 이상에서는 IPv6 및 IPv4 주소를 지원하는 멀티캐스트 프로그래밍에 소켓 옵션 집합을 사용할 수 있습니다. 이러한 소켓 옵션은 IP에 구애받지 않으며 IPv6 및 IPv4 모두에서 사용할 수 있습니다. 이러한 IP 독립적 옵션은 GROUP_REQGROUP_SOURCE_REQ 구조를 사용하며 Windows Vista 이상에서 멀티캐스트 프로그래밍을 위한 기본 소켓 옵션입니다. 자세한 내용은 멀티캐스트 프로그래밍 을 참조하세요.

IPv4를 사용하여 구성 가능한 멀티캐스트 기능이 적으면 ip_mreq 구조를 사용합니다. IPv6의 경우 ipv6_mreq 구조를 사용합니다.

imr_interface 멤버는 인터페이스 인덱스일 수 있습니다. 0.0.0.0의 IP 주소를 제외한 0.x.x.x 블록의 모든 IP 주소(0의 첫 번째 8진수)는 인터페이스 인덱스로 처리됩니다. 인터페이스 인덱스는 24비트 숫자입니다. 0.0.0.0/8 IPv4 주소 블록은 사용되지 않습니다(이 범위는 예약되어 있습니다). GetAdaptersAddresses 함수를 사용하여 imr_interface 멤버에 사용할 인터페이스 인덱스 정보를 가져올 수 있습니다.

로컬 IPv4 주소 또는 인터페이스 인덱스는 항상 기본 인터페이스를 사용하는 대신 ip_mreq_source 구조체의 imr_interface 멤버에 지정하는 것이 좋습니다. 이는 여러 네트워크 인터페이스와 여러 공용 IPv4 주소가 있는 컴퓨터에서 특히 중요합니다.

IPv4 멀티캐스트에 사용되는 기본 인터페이스는 Windows의 네트워킹 스택에 의해 결정됩니다. 애플리케이션은 GetIpForwardTable 함수를 사용하여 IPv4 라우팅 테이블을 검색하는 IPv4 멀티캐스트에 사용되는 기본 인터페이스를 확인할 수 있습니다. 대상 IP 주소의 라우팅 메트릭 값이 224.0.0.0인 네트워크 인터페이스는 IPv4 멀티캐스트의 기본 인터페이스입니다. 다음 명령을 사용하여 명령 프롬프트에서 라우팅 테이블을 표시할 수도 있습니다.

경로 인쇄

IP_MULTICAST_IF 소켓 옵션을 사용하여 IPv4 멀티캐스트 패킷을 보내도록 기본 인터페이스를 설정할 수 있습니다. 이 소켓 옵션은 IPv4 멀티캐스트 패킷을 수신하는 데 사용되는 기본 인터페이스를 변경하지 않습니다.

일반적인 IPv4 멀티캐스트 애플리케이션은 ip_mreq_source 구조와 함께 IP_ADD_SOURCE_MEMBERSHIP 소켓 옵션을 사용하여 멀티캐스트 그룹을 조인하고 특정 인터페이스에서 멀티캐스트 패킷을 수신 대기합니다. IP_MULTICAST_IF 소켓 옵션은 인터페이스를 설정하여 IPv4 멀티캐스트 패킷을 멀티캐스트 그룹으로 보내는 데 사용됩니다. 가장 일반적인 시나리오는 멀티캐스트 그룹에 대해 동일한 인터페이스에서 수신 대기하고 보내는 멀티캐스트 애플리케이션입니다. 다중 소켓은 수신 대기용 소켓 하나와 송신을 위한 하나 이상의 소켓이 있는 멀티캐스트 애플리케이션에서 사용할 수 있습니다.

Windows Vista 이상용으로 릴리스된 Microsoft Windows SDK(소프트웨어 개발 키트)에서 헤더 파일의 organization 변경되었으며 Ws2tcpip.h 헤더 파일에 자동으로 포함된 Ws2ipdef.h 헤더 파일에 ip_mreq_source 구조가 정의됩니다. Ws2ipdef.h 헤더 파일은 직접 사용하면 안 됩니다.

참고IP_MREQ_SOURCEPIP_MREQ_SOURCE 파생 구조는 Windows Vista 이상에서 릴리스된 Windows SDK에서만 정의됩니다. ip_mreq_source 구조체는 이전 버전의 Windows SDK에서 사용해야 합니다.
 

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 ws2ipdef.h(Ws2tcpip.h 포함)

참고 항목

GROUP_REQ

GROUP_SOURCE_REQ

GetAdaptersAddresses

GetIpForwardTable

IPPROTO_IP 소켓 옵션

멀티캐스트 프로그래밍

소켓 옵션

ip_mreq

ip_msfilter

ipv6_mreq