Einzelnen Beitrag anzeigen

Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#3

Re: Indy: "Try later, data connection in use"

  Alt 1. Jul 2006, 10:18
Zitat von Nogge:
Ich möchte gerne sofort beim Verbinden mit dem Server wissen, wie viele Verbindugen zugelassen sind bzw. mithilfe der Indy-Komponenten eine Eigenschaft auslesen, in der die Information enthalten ist.
Ich habe jetzt außerdem herausgefunden, dass der Fehler eine andere Ursache als das Verbindungslimit hat: Beim FTP-Protokoll gibt es nur 2 Übertragungskanäle. Der eine ist für das Übertragen der FTP-Befehle (z.B. 'CDUP', 'USER' usw.) und der andere für das Trasferieren von reinen Daten zuständig. Dieser Datenkanal kann immer nur eine Aktion zur selben Zeit ausführen, d.h. entweder werden nach dem LIST-Befehl die Dateinamen usw. von einem Verzeichnis auf dem FTP-Server übertragen oder es wird eine Datei in Form eines Streams gesendet.
Bei Indy10 gibt es die Events OnDataChannelCreate und OnDataChannelDestroy, in diese ich eine Boolean-Variable (mit Namen: DataChannelInUse) geschrieben habe, die je nach Event auf true bzw. false gesetzt wird. So kann nun frühzeitig getestet werden, ob das Listing ohne (unterdrückte) Fehlermeldung ausgeführt werden kann.
Ich persönlich wäre sehr froh, wenn mir jemand sagen kann, ob und, wenn, wie es möglich ist, (ohne eine weitere idFTP-Komponente) mehrere Datenkanäle parallel zu erstellen und zu verarbeiten. Ich fände es nämlich praktisch, wenn ich neben eines Downloads gleichzeitig mit dem List-Befehl auf den FTP-Server zugreifen könnte.
  Mit Zitat antworten Zitat