Windows 7 und Localhost / 127.0.0.1

Gast #2807222
Unter XP können meine MS Visual C++ Programme problemlos über 
"localhost" kommunizieren, unter Windows 7 klappt das nicht mehr. Es gab 
wohl auch Probleme, so auf einen Datenbankserver zuzugreifen.

Allerdings lässt sich mit zwei socat [1] Instanzen dennoch so per TCP 
kommunizieren.

Die altbekannte umleitung von localhost zu 127.0.0.1 ist in der Windows 
7 hosts auskommentiert, mit Hinweis darauf, dass der DNS das erledigt.
Einkommentieren ändert nichts am Verhalten.

Es bleibt mir derzeit nichts anderes übrig, als die LAN Adresse der 
Maschine zur lokalen Kommunikation zu nutzen.

Ist dieses Verhalten "by design" / gibt es einen workaround?


[1] http://www.dest-unreach.org/socat/
Gast
geht bei mir problemlos

C:\Users\ICH>ping -4 localhost

Ping wird ausgeführt für PC [127.0.0.1] mit 32 Bytes Daten:
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
Stimmt auffallend, aber dafür kann ich nix. Wie gesagt, das Netz ist 
IPv4, das DNS auch. Dass die Windows-Kiste für localhost IPv6 verwendet 
ist ihre Entscheidung. IPv4 geht aber auch:

Ping wird ausgeführt für 127.0.0.1 mit 32 Bytes Daten:
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128

Der Name "localhost" wird, wenn mit IPv4 verwendet, zu 127.0.0.1 
aufgelöst:

X:\temp>host localhost
Name: (...)
Address: 127.0.0.1
Gast
Pingen kann ich auch..
Es wird was mit geänderten Sicherheitvorkehrungen zu tun haben 
(WINSOCK). Allerdings bin ich Einsteiger und steige nicht wirklich 
durch:

Winsock server not working on Win7:
http://forums.codeguru.com/archive/index.php/t-507783.html

Using SO_REUSEADDR and SO_EXCLUSIVEADDRUSE:
http://msdn.microsoft.com/en-us/library/ms740621(v=vs.85).aspx

Dass ping und socat funktionieren, heisst nur, dass es gehen müsste. 
Offenbar muss also beim Herstellen der Netzwerkverbindug unter Windows 7 
mehr berücksichtigt werden als bislang.
Netzwerker schrieb:
> Dass ping und socat funktionieren, heisst nur, dass es gehen müsste.
> Offenbar muss also beim Herstellen der Netzwerkverbindug unter Windows 7
> mehr berücksichtigt werden als bislang.

Kaum. Das Uralt-Programm netio funktioniert auch. Der Server kommt 
allerdings mit einem Popup der Firewall hoch.
Gast
A. K. schrieb:
> Stimmt auffallend, aber dafür kann ich nix.

doch, man kann ping einen parameter mitgeben -4


@Netzwerker

hast du denn keine Fehlermeldung? Sind die programm von dir geschrieben? 
Ist der port überhaupt offen (netstat)?
Gast
Ich kann problemlos z.B. zu einer postgresql-DB via 127.0.0.1 zugreifen 
unter win7.

Ich vermute stark dass da bei dir einfach passende Regeln in der 
Windows-Firewall fehlen:
- Bei Anwendungen sollte eigentlich die Firewall nachfragen, sobald die 
Anwendung versucht an einem Port zu lauschen (unter Visual Studio laufen 
Anwendungen im Debugger teilweise über vshost.exe oder ähnlich, evtl. 
wurde die mal versehentlich geblockt - dann kommt die Meldung nicht 
mehr...)
- Bei Diensten sorgt in der Regel der dazugehörige Installer dafür 
passende Firewall-Regeln anzulegen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.