estrutura IP_MREQ_SOURCE (ws2ipdef.h)

A estrutura ip_mreq_source fornece informações de grupo multicast para endereços IPv4.

Sintaxe

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

Membros

imr_multiaddr

O endereço do grupo multicast IPv4.

imr_sourceaddr

O endereço da origem multicast IPv4.

imr_interface

O endereço IPv4 local da interface ou o índice de interface no qual o grupo multicast deve ser unido, descartado, bloqueado ou desbloqueado. Esse valor está na ordem de bytes de rede. Se esse membro especificar um endereço IPv4 de 0.0.0.0, a interface multicast IPv4 padrão será usada.

Usar um índice de interface de 1 seria o mesmo que um endereço IP de 0.0.0.1.

Comentários

A estrutura ip_mreq_source é usada com endereços IPv4. A estrutura ip_mreq_source é usada com as opções de soquete IP_ADD_SOURCE_MEMBERSHIP, IP_BLOCK_SOURCE, IP_DROP_SOURCE_MEMBERSHIP e IP_UNBLOCK_SOURCE .

A estrutura ip_mreq_source e as estruturas relacionadas usadas para programação multicast IPv4 são baseadas em recomendações de IETF nas seções 4 e 8.1 do RFC 3768. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc3678.txt.

No Windows Vista e posteriores, um conjunto de opções de soquete está disponível para programação multicast que dá suporte a endereços IPv6 e IPv4. Essas opções de soquete são independentes de IP e podem ser usadas no IPv6 e no IPv4. Essas opções independentes de IP usam o GROUP_REQ e as estruturas de GROUP_SOURCE_REQ e são as opções de soquete preferenciais para programação multicast no Windows Vista e posterior. Consulte Programação multicast para obter mais informações.

Para recursos multicast menos configuráveis com IPv4, use a estrutura ip_mreq . Para IPv6, use a estrutura ipv6_mreq .

O membro imr_interface pode ser um índice de interface. Qualquer endereço IP no bloco 0.x.x.x (primeiro octeto de 0), exceto pelo endereço IP 0.0.0.0, é tratado como um índice de interface. Um índice de interface é um número de 24 bits. O bloco de endereços IPv4 0.0.0.0/8 não é usado (esse intervalo é reservado). A função GetAdaptersAddresses pode ser usada para obter informações de índice de interface a serem usadas para o membro imr_interface .

É recomendável que um endereço IPv4 local ou índice de interface sempre seja especificado no membro imr_interface da estrutura ip_mreq_source , em vez de usar a interface padrão. Isso é particularmente importante em computadores com vários adaptadores de rede e vários endereços IPv4 públicos.

A interface padrão usada para multicast IPv4 é determinada pela pilha de rede no Windows. Um aplicativo pode determinar a interface padrão usada para multicast IPv4 usando a função GetIpForwardTable para recuperar a tabela de roteamento IPv4. O adaptador de rede com o menor valor para a métrica de roteamento para um endereço IP de destino de 224.0.0.0 é a interface padrão para multicast IPv4. A tabela de roteamento também pode ser exibida no prompt de comando com o seguinte comando:

imprimir rota

A opção de soquete IP_MULTICAST_IF pode ser usada para definir a interface padrão para enviar pacotes multicast IPv4. Essa opção de soquete não altera a interface padrão usada para receber pacotes multicast IPv4.

Um aplicativo multicast IPv4 típico usaria a opção de soquete IP_ADD_SOURCE_MEMBERSHIP com a estrutura ip_mreq_source para unir um grupo multicast e escutar pacotes multicast em uma interface específica. A opção IP_MULTICAST_IF soquete seria usada para definir a interface para enviar pacotes multicast IPv4 para o grupo multicast. O cenário mais comum seria um aplicativo multicast que escuta e envia na mesma interface para um grupo multicast. Vários soquetes podem ser usados por um aplicativo multicast com um soquete para escuta e um ou mais soquetes para envio.

No Microsoft Windows Software Development Kit (SDK) lançado para Windows Vista e posterior, a organização dos arquivos de cabeçalho foi alterada e a estrutura de ip_mreq_source é definida no arquivo de cabeçalho Ws2ipdef.h , que é incluído automaticamente no arquivo de cabeçalho Ws2tcpip.h . Os arquivos de cabeçalho Ws2ipdef.h nunca devem ser usados diretamente.

Nota As estruturas derivadas IP_MREQ_SOURCE e PIP_MREQ_SOURCE são definidas apenas no SDK do Windows lançado com o Windows Vista e posterior. A estrutura ip_mreq_source deve ser usada em versões anteriores do SDK do Windows.
 

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho ws2ipdef.h (include Ws2tcpip.h)

Confira também

GROUP_REQ

GROUP_SOURCE_REQ

Getadaptersaddresses

GetIpForwardTable

Opções de soquete IPPROTO_IP

Programação multicast

Opções de soquete

ip_mreq

ip_msfilter

ipv6_mreq