![]() |
Zu mehreren FTP gleichzeitig connecten mit Threads
Hallo folgendes Problem.
ich bin dabei mir eine FTP Suchmaschine zu basteln die zu mehreren FTP's gleichzeitig connected und diese durchsucht. Die Anzahl der gleichzeitigen Connection ist begrenzt (run_max).
Delphi-Quellcode:
Also "runthread" ausführen mit einer for schleife und jeweils anderem Host und Login geht nicht.
procedure Tform1.runthread;
var Th: TMyThread; begin Th := TMyThread.Create(true); Th.FreeOnTerminate := True; Th.PB := idftp1; TH.the_host:= serverlist.Items[sev].Caption; //HOST Th.the_user := serverlist.Items[sev].SubItems[0]; //USER TH.the_pw:= serverlist.Items[sev].SubItems[1]; //Password Th.Resume; end; procedure TMyThread.Execute; begin inc(run); while not Terminated do begin Synchronize(VCLSync); Sleep(3); end; dec(run); if sev<form1.serverlist.items.count then begin form1.runthread; inc(sev); end; end; procedure TMyThread.VCLSync; begin PB.Host:= the_host; PB.Username:= the_user; PB.Password:= the_pw; PB.Connect(true); if PB.Connected then begin form1.readfiles('/'); PB.Disconnect; end; Terminate; end;
Delphi-Quellcode:
Wie kann ich das machen, dass ich mehrere (run_max) Threads offen habe die alle einen anderen Server durchsuchen? Muss ich für jede connection eine neue IDFTP Komponente nehmen?
procedure TForm1.Start(Sender: TObject);
var I: Integer; begin sev:=0; run:=0; if (run_max>=serverlist.items.count) then for I := 0 to serverlist.items.count - 1 do begin runthread; inc(sev); end else for I := 0 to run_max - 1 do begin runthread; inc(sev); end; end; Gruß Stacker |
Re: Zu mehreren FTP gleichzeitig connecten mit Threads
ja musst du denn während das eine idftp beschäftigt ist kannst du es ja nicht aus dem anderen Thread gleichzeitig nutzen (ist ja schließlich beschäftigt). Zudem solltest du das TIdFtp im Thread erzeugen und nicht in einem anderen Thread (Hauptthread) wo es am ende gar nicht läuft.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz