Ich versuche, einen Prozess von Windows auf WSL/Linux zu portieren. Zuvor kommunizierten zwei Windows-Prozesse nach erfolgreicher SSDP-Erkennung über eine TCP-Verbindung. Jetzt möchte ich, dass eine ähnliche Kommunikation von Windows zu Linux (WSL) funktioniert. Ich habe im Windows<->Windows-Fall localhost/127.0.0.1 verwendet, aber die SSDP-Erkennung scheint nur mit der Instanz-IP von WSL für Windows<->WSL zu funktionieren.
ifconfigin WSL ergibt:
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
Die SSDP-Erkennung funktioniert für 172.26.253.18, wenn ich einen Prozess in Windows und einen anderen in WSL ausführe.
Ein möglicher Grund, der mir einfällt, ist, dass wenn wir 127.0.0.1 innerhalb von WSL verwenden, es sich auf die Loopback-Schnittstelle der WSL-Umgebung selbst bezieht. An 127.0.0.1 gesendete SSDP-Pakete bleiben innerhalb der WSL-Umgebung und sind für die Windows-Hostumgebung oder andere Geräte in Ihrem lokalen Netzwerk nicht sichtbar.