Ich habe dieses einfache, minimale 'Arbeitsbeispiel' unten, das alle zwei Sekunden eine Verbindung zu Google öffnet. Wenn ich dieses Skript ausfühle, wenn ich eine funktionierende Internetverbindung habe, erhalte ich die Erfolgsmeldung, und wenn ich dann die Verbindung abbringe, erhalte ich die Fehlermeldung, und wenn ich die Verbindung wieder herstelle, bekomme ich den Erfolg erneut. So weit, ist es gut.urrlib2.urlopen: "Name oder Dienst nicht bekannt" bleibt beim Starten des Skripts ohne Internetverbindung bestehen
Allerdings, wenn ich das Skript starten, wenn das Internet getrennt ist, bekomme ich die Fail-Nachrichten, und wenn ich später verbinde, bekomme ich nie die Erfolgsmeldung. Ich bekomme immer den Fehler:
urlopen error [Errno -2] Name or service not known
Was ist los?
import urllib2, time
while True:
try:
print('Trying')
response = urllib2.urlopen('http://www.google.com')
print('Success')
time.sleep(2)
except Exception, e:
print('Fail ' + str(e))
time.sleep(2)
Ich war tatsächlich mit Linux. Es ist eine Schande, dass es keine schönere und plattformunabhängige Lösung gibt. Wie auch immer, danke für die Erklärung! –
Nun, ja, es ist nicht plattformunabhängig. Wie auch immer, da es sich um ein Glibc-Problem handelt, sollte folgendes funktionieren, wenn Ihr Code auf anderen Systemen funktionieren muss: 'versuchen Sie: import ... außer: res_init = lambda: None' – insecure