Entwickler-Ecke
Internet / Netzwerk - TIdHttp: Socket Fehler # 10065
Alebo - So 26.10.03 16:23
Titel: TIdHttp: Socket Fehler # 10065
Hallo
Ich habe eine Liste mit URLs plus zugehörigen Usernamen und Passwörtern. Diese lasse ich mt einer Schleife überprüfen, allerdings bekomme ich bei einigen Adressen die Fehlermeldung "Socket Fehler 10065; Keine Route zum Host". Nach der Fehlermeldung scheint die Schleife zu unterbrechen.
Gibt es eine Mäglichkeite diese Fehlermeldung zu umgehen, so dass sie erst garnicht angezeigt wird und die Schleife die Nächsten URLs checkt?
Hier der Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| var row : integer; responseStream: TMemoryStream; http: TIDHttp; begin row := 0 ; while row <> Jvlistview1.items.Count do begin responseStream := TMemoryStream.Create; http := Tidhttp.create(nil); http.Request.Username := JvListView1.Items[row].Subitems.Strings[1]; http.Request.Password := JvListView1.Items[row].Subitems.Strings[2]; http.Request.BasicAuthentication := True; try
HTTP.Get(Jvlistview1.Items[row].SubItems.strings[0], responseStream); except on EIdHTTPProtocolException do JvListView1.Items[row].Subitems.Strings[3] := HTTP.ResponseText; end; if HTTP.Responsetext = 'HTTP/1.1 200 OK' then JvListView1.Items[row].ImageIndex := 2 else JvListView1.Items[row].ImageIndex := 1; JvListView1.Items[row].Subitems.Strings[3] := HTTP.ResponseText; responsestream.Free; http.Free; JvListView1.UpdateItems(row,row); inc(row); end; end; |
Ich hoffe ihr könnt mir helfen,
Alebo
Moderiert von
Tino: Code- durch Delphi-Tags ersetzt.
MrSaint - Mo 27.10.03 17:59
also "Keine Route zum Host" heißt normalewrweise, dass der Host gerade nicht auffindbar ist....
wo genau bekommst denn die Exception? doch hier, oder?
Quelltext
1:
| HTTP.Get(Jvlistview1.Items[row].SubItems.strings[0], responseStream); |
und das is ja eigentlich in nem try..except-Block... :?
MrSaint
Alebo - Mo 27.10.03 18:35
Ja, das ist die richtige Stelle.
Ich kann mir auch nicht erklären, warum da überhaupt ne Fehlermeldung kommt. da ich ja extra mit "try" arbeite.
MrSaint - Mo 27.10.03 18:43
kommt die fehlermeldung (nur) wenn du das Prog aus der IDE raus startest oder auch wenn du einfach die EXE an sich startest? die try..except-blöcke haben nämlich "nur" auswirkungen auf die fertige EXE dann (g.h. in der IDE haben sie auch auswirkungen, bloß springt da der debugger von Delphi ein und meldet dir die Exception; aber der is wenn man nur die EXE startet ja nich mehr an *g*)...
MrSaint
ErnestoChe - Mo 27.10.03 19:40
Hi,
Alebo hat folgendes geschrieben: |
Ich kann mir auch nicht erklären, warum da überhaupt ne Fehlermeldung kommt. da ich ja extra mit "try" arbeite. |
Du fängst aber eine andere Exception ab. du musst die
EIdSocketError abfangen und falls du's noch nicht getan hast die Unit
IdException einbinden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| uses IdException;
except on EIdSocketError do |
MFG
- Ernesto -
Alebo - Mi 29.10.03 17:30
Danke für die schnelle Antwort.
Weißt du auch, wie man diese Fehlermeldung umgeht "Socket Fehler 10060, Zeitüberschreitung bei Verbindung"?
Oder kann mir jemand sagen wo ich eine Liste mit allen möglichen Fehlern finde und den Möglichkeiten sie zu umgehen?
Mfg Alebo
ErnestoChe - Mi 29.10.03 21:10
Hi,
um welche Exception-Klasse handelt es sich denn? Wenn du das Programmm aus der Entwicklungsumgebung heraus startest und es kommt zu einer Exception, wird in einer MessageBox auch die Exception-Klasse angezeigt und die musst du abfangen.
MFG
- Ernesto -
Alebo - Mi 29.10.03 22:46
Der Debugger gibt eine Fehlermeldung vom Typ EIdSocketError aus.
Aber ich habe ja schon, wie du es gesagt hast "on EIdSocketerror" in den Except-Block aufgenommenm, dennoch bekomme ich eine Fehlermeldung wenn ich das Programm ohne die Delphi-IDE aufrufe.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!