Como escribí en la otra pregunta, creo que deberías empezar a usar tcpdump o wireshark para comprobar lo que realmente entra en la interfaz de red. Asegúrese de que usted puede ver los paquetes UDP allí primero - y luego más tarde se puede obtener socat
corriendo.
Lo interesante de esta pregunta es que afirmas que funciona en Ethernet pero no en Wi-Fi. Supongo que estás usando un Mac bastante reciente, ya que soportan la multidifusión en WiFi sin problemas. Para comprobarlo, ejecuta este comando en el Terminal:
ifconfig en0
(donde en0
debe ser sustituido por el nombre de la interfaz de su WiFi)
Esto debería decir algo así:
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
Observe que dice "MULTICAST" - esto es necesario para que las cosas funcionen.
El siguiente paso es comprobar las tablas de enrutamiento. Es posible que hayas configurado las cosas para enrutar exclusivamente la multidifusión en la interfaz Ethernet y no en la interfaz WiFi. En el Terminal ejecuta este comando:
netstat -nr | grep ^2
Es de esperar que veas líneas como esta:
224.0.0/4 link#5 UmCS en0
239.255.98.99 yyyyyy UHmLWI en0
Asegúrese de que la ruta general o la ruta específica existe y que es para la interfaz WiFi (en lugar de la interfaz ethernet).
También puede intentar cambiar el orden de servicio. Para ello, abra System Preferences > Networks
y luego haga clic en el pequeño círculo ...
debajo de la lista de interfaces y seleccione Set Service Order
. Asegúrese de que su interfaz WiFi aparece antes de la interfaz Ethernet.
También en System Preferences
, debería comprobar Sharing
y garantizar que Internet Sharing
no está activado.