Autor Beitrag
meolus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78

Gentoo, Debian, Win7 64-bit, WinXP
Delphi 2006 Prof., Delphi 2005 PE
BeitragVerfasst: Sa 27.08.05 09:42 
Hallo Leute ich schreibe schon längere Zeit an einem POP3-Mail-Client. Seitdem ich die INDY 10 Komponenten verwende häuft sich reproduzierbar der Fehler "Socket Error # 10054 Connection reset by peer". Häufig aber auch ohne wirklich ersichtlichen Grund (wobei ich denke, dass dann kurz doch die Inet-Leitung weg ist oder das KeepAlive funktioniert hat und ich einen realen "Connection reset by peer" habe, in der Regel sind die bei mir aber Hausgemacht und kein wirklicher connection reset by peer) :-/
Wie kann ich dies Verhindern?

Ich benutze zwar IdPOP3.KeepAlive; in einem Timer welcher alle paar Sekunden ausgelöst wird, aber dies scheint nicht so recht zu helfen. Überdies scheint die Abfrage des boolischen Properties "IdPOP3.Connected" nicht immer ganz korrekt zu sein. So erhalte ich teils auch auch den obigen Fehler, obwohl Indy meint es sei verbunden und ich absichtlich die Leitung hardwaremäßig gekappt habe!
Wie kann ich sicher feststellen, ob ich (noch) verbunden bin oder nicht?
Zudem bekommt das Indy dann auch nicht mit, dass nach einstecken des Kabels doch wieder eine Verbindungbesteht und er sich ggf. nur neu verbinden müsste oder so.

EDIT:
"IdPOP3.CheckForGracefulDisconnect(true);" was ich nach der Beschreibung evtl. noch erwartet hätte, dass es helfen könnte, erkennt auch den Verbindungsabbruch nicht! Gibt keine Exception aus und ändert auch nicht den Onlinestatus der POP3-Komponente :-/

_________________
Real programmers don't comment their code;
if it was hard to write, it should be hard to read.