Pergunta

Eu tenho sido incapaz de receber multicast UDP sob VxWorks 5.5. Eu juntei o grupo multicast:

setsockopt(soc, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *) &ipMreq, sizeof (ipMreq));

Código semelhante em uma máquina Windows adjacente não recebe multicast. Eu sou capaz de enviar multicast de VxWorks; ifShow () indica a interface é capaz multicast; MCAST_ROUTING está habilitado na configuração do kernel, mas ainda incapaz de receber multicast.

Editar :. Eu precisava definir um pouco na unidade RealTek Ethernet RX configuração registar para permitir multicast a ser passada para a camada de aplicação

#define RTL_RXCG_AM           0x04      /* Accept Multicast */
Foi útil?

Solução

Você está verificando o valor de retorno na chamada Junte setsockopt () para ter certeza de que realmente está sucedendo? Eu tive um problema específico com VxWorks 5.5 no passado onde meu multicast junta estavam falhando quando não deve ser. Eu acredito que nós tivemos que começar novas bibliotecas de WindRiver para corrigir o problema.

Editar: Não há nenhum truque específico que eu estou ciente de que recebendo multicast para trabalhar com VxWorks. Deve usar operações do BSD padrão soquetes. Se a interface pode receber tráfego unicast adequadamente, e um analisador de rede (Wireshark, por exemplo) mostra que o multicast associações são enviados e os pacotes multicast de entrada são formado corretamente, eu suspeitar de um problema de driver. apoio WindRiver tem sido muito útil para nós no passado com esses tipos de problemas; Eu não sei se você tiver um contrato de suporte com eles para obter esse nível de assistência.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top