Boost.Asio falscher lokaler Endpunkt

9

Codebeispiel:

%Vor%

Ich habe 2 Computer.

  1. Ausgabe von Computer A: verbunden. lokale Adresse: XXXXXX remote Adresse: YYYYY (wobei XXXXX und YYYY echte IPs sind (IPs, die dem Ping-Ausgang gleich sind))

  2. Ausgabe von Computer B: verbunden. lokale Adresse: 127.0.0.1 remote Adresse: YYYYY (wo YYYY echte IP (IPs gleich Ping-Ausgabe))

Computer A und B haben nur 1 NIC
Warum habe ich 127.0.0.1? Ich kann keine echte Verbindung von IP 127.0.0.1 zu YYYY herstellen. Wie kann man es beheben?
update:
selbst Windows-Sockets geben 127.0.0.1 auf problematischen Host zurück, siehe Code unten

%Vor%     
kain64b 12.10.2015, 10:48
quelle

2 Antworten

2

127.0.0.1 wurde über echte NIC weitergeleitet :) Verbindung erfolgreich von 127.0.0.1 zu Remote-IP wegen Routing: '(

    
kain64b 14.10.2015, 15:02
quelle
1

Sie mixen APIs, Compilerfehler und machen falsche Annahmen. Hier ist der Code stark vereinfacht:

Live auf Coliru %Vor%

In der Online-Demo lautet die Ausgabe:

%Vor%

Wenn ich eine Verbindung zu einem Remote-Host herstelle, der sich nicht im Loopback-Netzwerk befindet, erhalte ich tatsächlich:

%Vor%

Ich bin mir nicht sicher, ob Sie die Loopback-Adresse dort bekommen würden, aber ich würde die Möglichkeit nicht ausschließen, dass Sie tostring falsch machen.

Siehe

sehe 12.10.2015 12:53
quelle