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.