binde mit INADDR_ANY

8

Wenn ich einen Socket an INADDR_ANY binde, weiß ich, dass er eingehende Verbindungen auf allen IPs akzeptiert, die auf dem Server konfiguriert sind. Nehmen wir an, ich habe 1 IP konfiguriert, wenn ich den Aufruf bind () mache und dann eine neue IP konfiguriert wird. Wird bind () auch Verbindungen akzeptieren, die zu der neu konfigurierten IP initiiert wurden, oder funktioniert es nur für die IPs, die existierten, als bind () aufgerufen wurde?

    
Manohar 30.09.2011, 07:53
quelle

2 Antworten

11

Unter Linux, wenn Sie an INADDR_ANY binden, bleibt der Socket an 0.0.0.0 gebunden und akzeptiert die Verbindung zu jeder lokalen IP-Adresse, egal wie sich diese ändert. Nur wenn eine TCP-Verbindung hergestellt wird, ist die einzelne Verbindung an die IP-Adresse gebunden, an der sie empfangen wurde. Andere Verbindungen können weiterhin unter einer beliebigen Adresse empfangen werden.

    
Jacek Konieczny 30.09.2011, 08:11
quelle
2

Ja, es akzeptiert Verbindungen auf neu erstellten oder neu konfigurierten Schnittstellen.

Sie können es selbst ausprobieren, indem Sie eine Dummy-Schnittstelle erstellen:

%Vor%

Oder etwas; Versuchen Sie dann, sich mit dieser IP-Adresse zu verbinden.

    
MarkR 01.10.2011 07:19
quelle

Tags und Links