IP_MREQ 구조체(ws2ipdef.h)
ip_mreq 구조는 IPv4 주소에 대한 멀티캐스트 그룹 정보를 제공합니다.
구문
typedef struct ip_mreq {
IN_ADDR imr_multiaddr;
IN_ADDR imr_interface;
} IP_MREQ, *PIP_MREQ;
멤버
imr_multiaddr
IPv4 멀티캐스트 그룹의 주소입니다.
imr_interface
인터페이스의 로컬 IPv4 주소 또는 멀티캐스트 그룹을 조인하거나 삭제해야 하는 인터페이스 인덱스입니다. 이 값은 네트워크 바이트 순서입니다. 이 멤버가 0.0.0.0의 IPv4 주소를 지정하는 경우 기본 IPv4 멀티캐스트 인터페이스가 사용됩니다.
인터페이스 인덱스 1을 사용하려면 0.0.0.1의 IP 주소와 동일합니다.
설명
ip_mreq 구조체는 IPv4 주소와 함께 사용됩니다. ip_mreq 구조는 IP_ADD_MEMBERSHIP 및 IP_DROP_MEMBERSHIP 소켓 옵션과 함께 사용됩니다.
IPv4 멀티캐스트 프로그래밍에 사용되는 ip_mreq 구조 및 관련 구조는 RFC 3768의 섹션 4 및 8.1에서 IETF 권장 사항을 기반으로 합니다. 자세한 내용은 http://www.ietf.org/rfc/rfc3678.txt를 참조하세요.
IPv4를 사용하여 더 구성 가능한 멀티캐스트 기능을 보려면 ip_mreq_source 구조를 사용합니다. 자세한 내용은 멀티캐스트 프로그래밍을 참조하세요.
Windows Vista 이상에서는 IPv6 및 IPv4 주소를 지원하는 멀티캐스트 프로그래밍에 소켓 옵션 집합을 사용할 수 있습니다. 이러한 소켓 옵션은 IP에 구애받지 않으며 IPv6 및 IPv4 모두에서 사용할 수 있습니다. 이러한 IP 독립적 옵션은 GROUP_REQ 및 GROUP_SOURCE_REQ 구조를 사용하며 Windows Vista 이상에서 멀티캐스트 프로그래밍을 위한 기본 소켓 옵션입니다.
ip_mreq 구조체는 IPv6 기반 ipv6_mreq 구조체와 동일한 IPv4입니다.
imr_interface 멤버는 인터페이스 인덱스일 수 있습니다. 0.0.0.0의 IP 주소를 제외한 0.x.x.x 블록의 모든 IP 주소(0의 첫 번째 옥텟)는 인터페이스 인덱스로 처리됩니다. 인터페이스 인덱스는 24비트 숫자입니다. 0.0.0.0/8 IPv4 주소 블록은 사용되지 않습니다(이 범위는 예약되어 있습니다). GetAdaptersAddresses 함수를 사용하여 imr_interface 멤버에 사용할 인터페이스 인덱스 정보를 가져올 수 있습니다.
기본 인터페이스를 사용하는 대신 로컬 IPv4 주소 또는 인터페이스 인덱스는 항상 ip_mreq 구조의 imr_interface 멤버에 지정하는 것이 좋습니다. 이는 여러 네트워크 인터페이스 및 여러 공용 IPv4 주소가 있는 컴퓨터에서 특히 중요합니다.
IPv4 멀티캐스트에 사용되는 기본 인터페이스는 Windows의 네트워킹 스택에 의해 결정됩니다. 애플리케이션은 GetIpForwardTable 함수를 사용하여 IPv4 라우팅 테이블을 검색하는 IPv4 멀티캐스트에 사용되는 기본 인터페이스를 확인할 수 있습니다. 대상 IP 주소의 라우팅 메트릭 값이 224.0.0.0인 네트워크 인터페이스는 IPv4 멀티캐스트의 기본 인터페이스입니다. 다음 명령을 사용하여 명령 프롬프트에서 라우팅 테이블을 표시할 수도 있습니다.
경로 인쇄
IP_MULTICAST_IF 소켓 옵션을 사용하여 IPv4 멀티캐스트 패킷을 보내도록 기본 인터페이스를 설정할 수 있습니다. 이 소켓 옵션은 IPv4 멀티캐스트 패킷을 수신하는 데 사용되는 기본 인터페이스를 변경하지 않습니다.
일반적인 IPv4 멀티캐스트 애플리케이션은 ip_mreq 구조와 함께 IP_ADD_MEMBERSHIP 소켓 옵션을 사용하여 멀티캐스트 그룹을 조인하고 특정 인터페이스에서 멀티캐스트 패킷을 수신 대기합니다. IP_MULTICAST_IF 소켓 옵션은 인터페이스를 설정하여 IPv4 멀티캐스트 패킷을 멀티캐스트 그룹으로 보내는 데 사용됩니다. 가장 일반적인 시나리오는 멀티캐스트 그룹에 대해 동일한 인터페이스에서 수신 대기하고 보내는 멀티캐스트 애플리케이션입니다. 멀티캐스트 애플리케이션에서 수신 대기용 소켓 1개와 송신을 위한 하나 이상의 소켓이 있는 여러 소켓을 사용할 수 있습니다.
Windows Vista 이상용으로 릴리스된 Microsoft SDK(Windows SDK(소프트웨어 개발 키트))에서 헤더 파일의 organization 변경되고 Ws2tcpip.h 헤더 파일에 자동으로 포함된 Ws2ipdef.h 헤더 파일에 ip_mreq 구조가 정의됩니다. Ws2ipdef.h 헤더 파일은 직접 사용하면 안 됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
머리글 | ws2ipdef.h(Ws2tcpip.h 포함) |