Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: CL | DM;

Вниз

FTP&indy Проблема при уничтожения FTPServer - a   Найти похожие ветки 

 
Vyacheslav ©   (2004-12-03 14:10) [0]

В вобшем такая проблема Мастера. Вызываем Destroy.
в строке (FreeAndNil(FIdFTPServer1)) возникает ощибка EIdClosedSocket with Message "Disconnected".. Эта ощибка возникает только если в момент уничтожения есть активный клиент..
Если клиент закрыл ссесию сам то Destroy проходит нормалньо

destructor TFTPServerThread.Destroy;
var f:TList;
   i:integer;
begin
 f := FIdFTPServer1.Threads.LockList;
 for i:=f.Count-1 downto 0 do begin
   IdFTPServer1Disconnect(TIdPeerThread(f[i]));
 end;
 try
   FreeAndNil(FIdFTPServer1); // Ощибка Здесь
 except
 end;
 inherited;
end;

procedure TFTPServerThread.IdFTPServer1Disconnect(AThread: TIdPeerThread);
var ActClient : TBotFTPUser;
begin
 if assigned(TBotFTPUser(AThread.Data)) then begin
   ActClient := TBotFTPUser(AThread.Data);
   try
     FIdFTPServer1.Threads.LockList.Remove(ActClient);
   finally
     FIdFTPServer1.Threads.UnlockList;
   end;
   ActClient.Free;
   AThread.Data := nil;
 end;
end;

//на ето можете не смотреть...так для обшего понимания
type TBotFTPUser=class
 filename:String;
 uploading:Boolean;
end;


 
Jel ©   (2004-12-04 15:06) [1]

Возможно не успевает отработать Disconnect?



Страницы: 1 вся ветка

Текущий архив: 2005.02.13;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.049 c
14-1106660717
Vaitek
2005-01-25 16:45
2005.02.13
А вот интересно...


4-1103545442
_Nikolay
2004-12-20 15:24
2005.02.13
Управление питанием


14-1106490412
Qu
2005-01-23 17:26
2005.02.13
Копирование текста.


1-1107160374
dreamse
2005-01-31 11:32
2005.02.13
Как перевести real ( double ) в integer


14-1106727329
Sergo
2005-01-26 11:15
2005.02.13
API для работы с реестром