[ matobj @ 31.03.2010. 08:18 ] @
Kako napraviti disconnect sa FTP-a?

Imam slijedeci kod u Delphi 2009 i Indy 10.2.5

Dakle kliknem i nonektiram se na FTP:

Code:

procedure TForm1.Button3Click(Sender: TObject);
begin
IdFTP1.Username := 'Administrator';
IdFTP1.Password := 'pero';
IdFTP1.Host := 'localhost';
IdFTP1.Connect;
end;


I zatim kliknem da se diskonektiram:

Code:

procedure TForm1.Button4Click(Sender: TObject);
begin
IdFTP1.Disconnect;
end;


i sve je to ok, ali kada se hocu ponovo konektirat onda mi javi "Alredy connected" iako mi u statusu pise da je disconnected, a ako mu ponovo kliknem da se diskonektira onda mi javi "Conection closed Gracefully"?
[ matobj @ 31.03.2010. 10:49 ] @
Ma bas sad gledam. To mi samo radi na localhostu (XP), ali ne znam zbog cega?
[ savkic @ 31.03.2010. 10:53 ] @
> sve je to ok, ali kada se hocu ponovo konektirat onda mi javi "Alredy connected" iako mi u statusu pise da je disconnected, a ako mu ponovo kliknem da se diskonektira onda mi javi "Conection closed Gracefully"?

Disconnect je prava metoda, pokušaj da updejtuješ verziju Indy komponenti koju koristiš. Connection closed gracefully je exception koji možeš ignorisati.
[ anon68680 @ 31.03.2010. 12:28 ] @
A jesi probao Quit; ?

Ako ni to nece, probaj DisconnectSocket da pozoves direktno:
Citat:
DisconnectSocket is used when an error has occurred in a protocol handler and a guaranteed disconnect is needed.

[ matobj @ 01.04.2010. 08:19 ] @
Napravio sam upgrade komponente na zadnju verziju 10.5.7, ali na zalost nije pomoglo :(

Uspio sam ga "diskonektirat" sa
Code:
IdFTP1.Socket.Close;
ali mi onda OnDisconnected events nista ne javlja da se je odspojio.

Ma vec sam polako lud sa tim Indy 10 glupostima. Na indy 9 je sve radilo super, ali kad sam presao na delphi 2009 i taj indy 10 sami problemi.

Eh da ni quit nije pomogao
[ matobj @ 01.04.2010. 10:21 ] @
Našao sam i ovo pa ako mi netko moze pomoci kako da ocistim taj Buffer

"That means the InputBuffer still has unread data in it. The Connected() method is intentionally designed to return True when there is still pending data that can satisfy reading operations, even if the physical connection is gone. That is why Connect() raises an exception. Since you are obviously not reading all of the server's data before disconnecting, you will have to manually Clear() the InputBuffer() before calling Connect()."
[ matobj @ 01.04.2010. 10:33 ] @
Rijesio sam :)

Stavio sam iohandler i povezao sa fpt-om i onda prije konektanja prvo cistim buffer i onda sve radi :)

Hvala svim
[ savkic @ 01.04.2010. 10:33 ] @
> Napravio sam upgrade komponente na zadnju verziju 10.5.7, ali na zalost nije pomoglo :

Ja koristim 10.2.3 i nemam problema sa Disconnect.

> Našao sam i ovo pa ako mi netko moze pomoci kako da ocistim taj Buffer

FFTP.IOHandler.InputBuffer.Clear