Jak rozlaczyc sie z FTP kiedy ten zakonczyl polaczenie

0

Witajcie. Sprawa wyglada tak. Napisalem prostego klienta FTP wykorzystujac oczywiscie pakiet INDY.
No i jakos to dziala ale problem pojawia sie np kiedy podczas polaczenia z serwerm FTP ten wylacza sie a moj klient proboje zakonczyc polaczenie. Dostaje wtedy komunikat "Connection closed gracefully" ktorego nie chce natomiast chce zeby klient podja jakies dzialanie. Doszedlem do tego jak to zrobic ale nadal nie moge zakonczyc polaczenia tak zebym mogl ponownie sie polaczyc z serwerem FTP. Nie wiem czy dobrze to wyjasnilem. Ponizej czesc kodu odpowiedzialna tylko za polaczenie i rozlaczenie z FTPem.

procedure TForm1.IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
  const AStatusText: String);
begin
Memo1.Lines.Add(AStatusText);
end;

procedure TForm1.PolaczClick(Sender: TObject);
begin
 try
  if not IdFTP1.Connected then IdFTP1.Connect;
 except
   on E : Exception do
    if E is EIdConnClosedGracefully then
    begin
     Memo1.Lines.Add('Cos tam');
    end else if E is EIdSocketError then
    begin
     Memo1.Lines.Add('Brak polaczenia za FTP');
    end else if E is EIdReplyRFCError then
    begin
     Memo1.Lines.Add('Brak odpowiedzi z serwera');
    end else
     raise
  end
end;

procedure TForm1.RozlaczClick(Sender: TObject);
begin
 try
  if IdFTP1.Connected then IdFTP1.Disconnect;
 except
   on E : Exception do
    if E is EIdConnClosedGracefully then
    begin
     Memo1.Lines.Add('Cos tam');
     if IdFTP1.Connected then
     begin
      Memo1.Lines.Add('Nadal jest podlaczony');
     end;
    end else if E is EIdSocketError then
    begin
     Memo1.Lines.Add('Brak polaczenia za FTP');
    end else if E is EIdReplyRFCError then
    begin
     Memo1.Lines.Add('Brak odpowiedzi z serwera');
    end else
     raise
  end
end;
0
FTPWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64);

AWorkCount to przesłane dane :>

1 użytkowników online, w tym zalogowanych: 0, gości: 1