다음을 통해 공유


IPV6_MREQ 구조체(ws2ipdef.h)

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

구문

typedef struct ipv6_mreq {
  IN6_ADDR ipv6mr_multiaddr;
  ULONG    ipv6mr_interface;
} IPV6_MREQ, *PIPV6_MREQ;

멤버

ipv6mr_multiaddr

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

ipv6mr_interface

멀티캐스트 그룹을 조인하거나 삭제해야 하는 로컬 인터페이스의 인터페이스 인덱스입니다. 이 멤버가 인터페이스 인덱스 0을 지정하면 기본 멀티캐스트 인터페이스가 사용됩니다.

설명

ipv6_mreq 구조체는 IPv6 주소와 함께 사용됩니다. ipv6_mreq 구조는 IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_JOIN_GROUPIPV6_LEAVE_GROUP 소켓 옵션과 함께 사용됩니다. IPV6_JOIN_GROUPIPV6_ADD_MEMBERSHIP 소켓 옵션은 동일하게 정의됩니다. IPV6_LEAVE_GROUPIPV6_DROP_MEMBERSHIP 소켓 옵션은 동일하게 정의됩니다.

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

ipv6_mreq 구조체는 IPv4 기반 ip_mreq 구조체와 동일한 IPv6입니다.

GetAdaptersAddresses 함수를 사용하여 ipv6mr_interface 멤버에 필요한 인터페이스 인덱스 정보를 가져올 수 있습니다.

이 구조를 사용하는 ipv6_mreq 구조체 및 IPPROTO_IPV6 수준 소켓 옵션은 데이터그램 및 원시 소켓에서만 유효합니다(소켓 유형은 SOCK_DGRAM 또는 SOCK_RAW).

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

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

경로 인쇄

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

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

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

참고PIP6_MREQ 파생 구조체는 Windows Vista 이상에서 릴리스된 Windows SDK 정의됩니다. GROUP_REQGROUP_SOURCE_REQ 구조와 는 Windows Vista 이상에서 멀티캐스트 프로그래밍을 위한 기본 소켓 옵션입니다.
 

요구 사항

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

추가 정보

GROUP_REQ

GROUP_SOURCE_REQ

GetAdaptersAddresses

GetIpForwardTable2

IPPROTO_IPV6 소켓 옵션

멀티캐스트 프로그래밍

소켓 옵션

ip_mreq