Estoy intentando portar un proceso de Windows a WSL/Linux. Anteriormente, dos procesos de Windows se comunicaban a través de una conexión TCP después del descubrimiento exitoso de SSDP. Ahora, quiero que funcione una comunicación similar de Windows a Linux (WSL). Había estado usando localhost/127.0.0.1 en el caso de Windows<->Windows, pero el descubrimiento de SSDP parece funcionar solo en la IP de instancia de WSL para Windows<->WSL.
ifconfigen WSL da:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.26.253.18 netmask 255.255.240.0 broadcast 172.26.255.255
inet6 fe80::215:5dff:fed7:82b prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:d7:08:2b txqueuelen 1000 (Ethernet)
RX packets 422 bytes 72257 (72.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 299 bytes 27676 (27.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 378 bytes 19949 (19.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 378 bytes 19949 (19.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
El descubrimiento de SSDP funciona para 172.26.253.18 cuando ejecuto un proceso en Windows y otro en WSL.
La posible razón que se me ocurre es que cuando usamos 127.0.0.1 dentro de WSL, se refiere a la interfaz de bucle invertido del propio entorno WSL. Los paquetes SSDP enviados a 127.0.0.1 permanecen dentro del entorno WSL y no son visibles para el entorno host de Windows ni para otros dispositivos de su red local.