Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Alle client Threads am FTP server schliesen (https://www.delphipraxis.net/40369-alle-client-threads-am-ftp-server-schliesen.html)

m0sch3r 14. Feb 2005 22:30


Alle client Threads am FTP server schliesen
 
Hi alle zusammen

Bei einem FTPServer (indy) sollen alle zu ihm connecteten clients geschlosen und deren Threads terminiert werden (so schnell wie möglich - bei Programmende )...

Könnte jemannd mit einem Beispiel oder Denkanstoß mir helfen...:)))

m0sch3r 15. Feb 2005 13:47

Re: Alle client Threads am FTP server schliesen
 
Ah so ja, die Tatsache das zur dem Moment noch Daten ubertragen werden spielt auch eine Rolle (client zieht vom Server einen File).

beim schliesen in der Ausfuhrung wird eien Exception erzeugt. (während des Dateidownloads).

Delphi-Quellcode:
for i := 0 to idFTPserver1.Bindings.Count - 1 do
        begin
        idftpServer1.Bindings.Items[i].CloseSocket;
        end;
Ich kenne mich nicht einzeln mit den Eigenschaften der Sockets. ich nehme an man mus erst den Datenverkehr stoppen und dann erst den socket schliesen...!?

SubData 15. Feb 2005 13:49

Re: Alle client Threads am FTP server schliesen
 
Kommt die Exception nur in der IDE oder auch wenn du das Programm eigenständig ausführst?
Und was is das für ne Exception?

m0sch3r 15. Feb 2005 13:55

Re: Alle client Threads am FTP server schliesen
 
Es ist eine Access Violation in der IDE, beim normalen laufen - erzeigt es auch einen fehler - dann kommt dieser komischer Dialog ob ich den Bug Microsoft melden möchte...:))).

ich nehme an das ist desswegen weil die client-Threads nicht ordnungsgemäß geschlossen sind..
Komisch das keiner mit dem Problem konfrontiert war einen FTP server zu schliesen, bei laufenden verbindungen...!!!

SubData 15. Feb 2005 14:06

Re: Alle client Threads am FTP server schliesen
 
Zitat:

Zitat von m0sch3r
Delphi-Quellcode:
for i := 0 to idFTPserver1.Bindings.Count - 1 do
        begin
        idftpServer1.Bindings.Items[i].CloseSocket;
        end;

So knallt das auf jeden Fall... Weil du über den Index hinaus schießt...

Delphi-Quellcode:

for i := idFTPServer1.Bindings.Count - 1 downto 0 do
begin
  idftpServer1.Bindings.Items[i].CloseSocket;
end;
Versuchs mal so ^^

m0sch3r 15. Feb 2005 14:29

Re: Alle client Threads am FTP server schliesen
 
Habe eben grade getestet, einwandfrei - vielen dank....:)))


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:57 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