al configurar un conector mediante dgram.createSocket('udp4');
y no vinculante a un puerto específico que hago recibir paquetes transmitidos que fueron enviadas a 255.255.255.255 Pero cuando estoy de unión a la misma toma de la dirección IP específica de mi interfaz this.server.bind(67, host);
NO recibiré estos paquetes emitidos. ¿Es este un comportamiento normal?recibir paquetes transmitidos cuando se escucha a un puerto específico
Respuesta
El Javadoc for java.net.DatagramSocket dice:
Para recibir paquetes de difusión de un DatagramSocket debe estar sujeta a la dirección de comodín. En algunas implementaciones, los paquetes de difusión también se pueden recibir cuando un DatagramSocket está vinculado a una dirección más específica .
Esta es una indicación bastante clara de que el comportamiento depende de la plataforma, por lo que los conectores Javascript se verán afectados de la misma manera.
De acuerdo con mis pruebas, Windows Vista 64 no se comporta como se describe en la segunda oración (es decir, no recibe difusiones a menos que esté vinculado a INADDR_ANY).
Sí, este es el comportamiento esperado porque, sin un puerto o interfaz, dgram.createSocket() hará lo siguiente:
se unen a la dirección de "todas las interfaces" en un puerto aleatorio (lo hace la derecha cosa para ambos sockets udp4 y udp6).
- Del dgram API documentation en nodejs.org
que le permite capturar los paquetes de difusión a cualquier puerto en cualquier interfaz disponible.
Al probar tanto una interfaz como un puerto para createSocket(), se limita a capturar únicamente paquetes que se han transmitido a la red vinculada a la interfaz especificada en el puerto especificado.
Debe tener en cuenta que para recibir transmisiones a una interfaz específica, deberán enviarse a la dirección de difusión en/para la red a la que sirve esa interfaz.
Así que si la red es:
10.1.1.0
con una máscara de red de:
255.255.255.252
que es también:
10.1.1.0/29 (CIDR notation)
la dirección de difusión correcta es:
10.1.1.7
Dada su dirección de red y máscara de red, "Network and IP address calculator" de tuxgraphics.org es una herramienta que puede utilizar para identificar la dirección de difusión correcta para su red específica.
El comportamiento depende de la plataforma en realidad. Véase, por ejemplo, Stevens, Fenner y Rudolf, * Programación en red de Unix, * Vol I, 3a edición, p. 532, y # 3.3.6 de RFC 1192 que 'no toma posición' sobre el tema. – EJP
- 1. cómo recibir SMS de texto al puerto específico ..
- 2. ¿Cómo vincular un Socket Raw a un puerto específico?
- 3. Qué PID escucha en un puerto mach determinado
- 4. ¿Cómo se escuchan los paquetes de difusión en cualquier puerto?
- 5. operación de la Cruz-hilo no válida mientras se escucha a un puerto COM
- 6. cómo capturar paquetes en un puerto específico en cualquier interfaz usando tshark
- 7. Cómo saber el tráfico a un puerto específico en Linux
- 8. ¿Cómo puedo obtener el puerto que escucha un servicio WCF?
- 9. Cómo recibir paquetes de multidifusión en Android
- 10. Conector en bruto de Python que escucha paquetes UDP; sólo la mitad de los paquetes recibidos
- 11. Recibir notificación cuando se cambió el valor de RegistryKey
- 12. ¿Cómo enviar y recibir UDP en el mismo puerto?
- 13. Recibir notificaciones cuando se reproduce un sonido en OpenAL
- 14. ¿Por qué el cliente DHCP escucha en el puerto 68?
- 15. ¿Cómo construyo un depurador personalizado que se conecta a un proceso .NET y escucha eventos de un tipo específico?
- 16. cómo cambiar el puerto de escucha Postgresql en Windows?
- 17. Ruta de la aplicación y puerto de escucha
- 18. Cómo ejecutar el servicio WCF en un puerto específico
- 19. Cómo recibir eventos cuando se conecta a la red y también cuando usuario inicia sesión en
- 20. TcpListener: ¿Cómo escuchar un puerto específico en todas las interfaces?
- 21. ¿Las conexiones TCP se mueven a otro puerto después de que se abren?
- 22. ¿Cómo puedo probar una conexión saliente a una dirección IP así como a un puerto específico?
- 23. Número de puerto fuente de puerto
- 24. ¿Cómo averiguar qué tipos de escucha de eventos se unen a un elemento HTML específico en la extensión de Chrome?
- 25. ¿Cómo se asigna un nombre específico a una etiqueta cuando se utilizan páginas maestras?
- 26. Objetivo C: recibir una notificación cuando se llame a un método
- 27. javax.jms.MessageConsumer se cuelga al recibir cuando el consumidor cerró
- 28. Recibir una notificación cuando se selecciona la pestaña actual nuevamente
- 29. ¿Cómo puedo recibir notificaciones cuando se visualice UIView?
- 30. pyqt: recibir señal cuando el widget se vuelve visible/oculto
-1 ya que esta pregunta no tiene nada que ver con Java. –
@RobRaisch Y un feliz -1 para ti también.Si hubiera leído mi respuesta correctamente, habría visto que estaba citando el Javadoc * como evidencia de que el comportamiento depende de la plataforma, * y que, por lo tanto, también afecta a Javascript, y de hecho a todos los demás idiomas por igual. Es una pena que no lo entendieras la primera vez. – EJP