Indy idFTP Error 10055
-
Hallo zusammen
innerhalb meiner Application benutze ich idFTP um eine größere Anzahl von Files (ca. 600) auf einen Server zu laden.
Es wird zunächst ein "Connect" gemacht, danach innerhalb einer Schleife die entsprechenden Dateiennamen aus einer DB gelesen und per "put" jeweils kopiert.
Zum Abschluss wird dann "disconnect" aufgerufen.
Rufe ich die entsprechende Form ein zweites Mal auf, um einen weiteren Kopiervorgang aus einer anderen DB anzustossen kommt es mittendrin zu einem 10055 (Buffer overflow) Error. Die umgekehrte Reihenfolge also erst die zweite DB dann die vormals erste ergibt das gleiche Ergebnis.
Beende ich jedoch vor dem 2. Kopierprozess die Application und starte diese neu, funktioniert alles.
Betriebssystem Windows XP, Indy 9 und Cbuilder 6.
Ich wäre sehr dankbar, wenn jemand einen Hinweis oder Idee hätte
Gruss
Mirko
-
Versuch doch mal, die TIdFTP-Instanz erst zur Laufzeit zu erstellen und nach "Gebrauch" gleich wieder zu löschen. Damit sollte die Verbindung eigentlich garantiert zurückgesetzt werden, ähnlich wie beim Neustart der Anwendung.
-
Hallo Jansen
Dein Vorschlag ist gut, dummerweise hatte ich diese Idee auch schon, das führt zum gleichen Ergebnis. Das sich der FTP Transfer auf einer 2. Form befindet sollte auch eigentlich mit schliessen der Form der Ursprungszustand hergestellt sein.
Ebenso hatte ich versucht vor jedem Put ein Connect und anschliessend disconnect zu machen, ebenso das gleiche Ergebnis.
Mein Verdacht geht mittlerweile auch mehr in Richtung Windows, ich glaube nicht das das Problem alleine durch die Indy Kompo. kommt.
Ein weiterer Hinweis ist, das wenn die Application hängt auch ein FTP über die Console zum Server einen Fehler meldet. Die Frage ist nun wie kann man den "Buffer" wieder frei geben.
Gruss
Mirko
-
Das 'Schließen' einer Form führt nur dazu, dass Hide=true gesetzt wird. Das Form wird nicht freigegeben oder in irgendeiner Art und Weise zurückgesetzt.
Initialisierungen beim Aufruf eines Forms können in der FormShow() ausgeführt werden.