Pergunta

Eu estou usando MulticastSocket para receber pacotes UDP multicast. Como posso determinar para qual endereço de tal pacote foi enviado? Com os métodos fornecidos, sou apenas capaz de determinar o endereço do remetente.

Claro, eu sou o único que define o para-endereço ao criar o soquete de escuta, mas eu posso realmente ter certeza sobre isso? E quanto a pacotes de difusão? E sobre os pacotes que de alguma forma acabam aqui? Eu realmente quero distinguir se o pacote foi realmente multicast.

Obrigado!

Update: Atualmente parece que pacotes unicast apenas enviados para essa porta também acabam nos soquetes multicast receber () :( ligação a dispositivos também me dá nenhum melhores resultados

Foi útil?

Solução

Eu sou um pouco confuso sobre os detalhes, mas um pacote de multicast terá sido enviado para a combinação IP / porta que subscreveu (e esta informação será no pacote, em algum lugar), supondo que você conseguiu ter um caminho claro de roteadores intermediários que entendem multicast. Se você quer ter a certeza da MulticastSocket está recebendo a partir do interface de rede direita, há um monte de funções para vinculá-lo a uma interface específica.

Eu não acho que você tem nenhuma maneira de saber se o pacote era "realmente" multicast, ou seja, alguém sempre pode forjar um, já que não há segurança real construído em.

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