Pregunta

Estoy usando MulticastSocket para recibir paquetes UDP Multicast. ¿Cómo puedo determinar a qué dirección se envió dicho paquete? Con los métodos proporcionados, solo puedo determinar la dirección del remitente.

Por supuesto, yo soy quien establece la dirección de destino al crear el socket de escucha, pero ¿puedo estar realmente seguro de esto? ¿Qué pasa con los paquetes de difusión? ¿Qué pasa con los paquetes que de alguna manera terminan aquí? Realmente quiero distinguir si el paquete fue REALMENTE multidifusión.

¡Gracias!

Actualización: actualmente parece que los paquetes de unidifusión que se acaban de enviar a ese puerto también terminan en los sockets de multidifusión recibidos () :( La vinculación a dispositivos tampoco me da mejores resultados

¿Fue útil?

Solución

Estoy un poco confuso con los detalles, pero se habrá enviado un paquete de multidifusión al combo de IP / puerto al que se suscribió (y esta información estará en el paquete, en alguna parte), suponiendo que haya logrado tener una ruta clara de enrutadores intermedios que entienden la multidifusión. Si desea asegurarse de que el multicastsocket está recibiendo de la interfaz de red correcta, hay un montón de funciones para vincularlo a una interfaz específica.

No creo que tenga ninguna forma de saber si el paquete era "realmente" multidifusión, es decir, alguien siempre podría falsificar una, ya que no hay seguridad real incorporada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top