gethostbyname nicht für die lokalen Host-Namen nach aus dem Ruhezustand wieder aufzunehmen (Vista + 7?)

StackOverflow https://stackoverflow.com/questions/2153716

Frage

Nur frage mich, ob jemand anderes hat entdeckt diese:

Auf einigen Maschinen des Benutzers unsere Software ausgeführt wird, gelegentlich der Aufruf von Win32 Winsock gethostbyname schlägt mit Fehlercode 11004.

Für das Argument gethostbyname, ich bin im Ergebnis aus gethostname vorbei.

Jetzt sind die docs sagen 11004 WSANO_DATA ist. Keine der Beschreibungen scheinen relevant zu sein (es tritt auf, wenn Sie in einer IP6-Adresse passieren, aber wie ich sage, ich bin vorbei in einen Hostnamen).

Noch interessanter ist, dass die MSDN schlägt vor, dass diese Kombination (gethostname von gethostbyname gefolgt) soll niemals scheitern nicht, selbst wenn es keine IP-Adresse (in diesem Fall wäre es nur leere Liste der IP-Adressen zurück). Hier ist das Zitat aus dem gethostname MSDN-Eintrag:

  

... es wird garantiert, dass der Name zurückgegeben wird erfolgreich von gethostbyname und WSAAsyncGetHostByName analysiert werden.

Es ist nur immer geschieht, nachdem aus dem Ruhezustand wieder aufzunehmen, in dieser kurzen Zeit, wenn das Netzwerk neu gestartet wird, und nur auf Vista / 7 (gut habe ich es nur auf Vista und 7 zu sehen ist).

Eine Theorie, die ich hatte, war, dass es zu IP6 bezogen. Vielleicht für einen kurzen Zeitraum, berichtet das Netzwerk eine IP6-Adresse aber nicht die corresponging IP4-Adresse (ich bin mir ziemlich sicher, dass alle Client-Rechner Dual IP-Stack, aber ich könnte falsch sein).

Ich habe versucht, durch Ausschalten meine Netzwerkkarte zu reproduzieren (keine IP-Adressen zu erzwingen) und konnte nicht reproduzieren.

Wer gesehen dieses vor?

Irgendwelche Ideen?

John

War es hilfreich?

Lösung

Ich glaube, Sie von einem Rand Fall gebissen worden sind.

Am Ende des Tages so etwas wie Hibernate tun vorgerückt Sachen - Wiederherstellung eines PC in genau dem Zustand und Weiterbildung, als ob nichts geschehen wäre. Das ist alles schön und gut, aber einige Dinge nicht überlebt haben, wie alle Netzwerkverbindungen, die eine Antwort erwartet, und jeder ernsthaft Low-Level-you-can not set-me-only-read-me-Register in dem CPU.

Ich schlage vor, Sie Microsoft kontaktieren und sie fragen, ob sie darüber Bescheid wissen. Wenn es auch für andere Betriebssysteme arbeitet, wird sie am ehesten interessiert sei es für 7 / Vista bei der Festsetzung. Nur um die Hand über einen binären vorbereitet werden, damit sie es ad-infinitum testen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top