Dann schmeiß die Aufträge in eine Liste und suche dir aus dieser Liste, den nächsten möglichen Auftrag heraus (wenn die maximalen Verbindungen noch nicht erreicht sind).
Dazu hast du z.B. die gerade aktiven
FTP-Server in einer Liste (z.B. TStringList) und prüfst bei jedem Auftrag, ob der
FTP-Server schon in der Liste ist.
Wenn nicht, dann den
FTp-Server in diese Liste rein und den Auftrag abarbeiten lassen (Thread).
Ist der Download abgeschlossen, dann den
FTp-Server wieder aus der Liste und weiter zum nächsten Auftrag.