Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

FTP&indy Проблема при уничтожения FTPServer - a [D7, Win2k]


Vyacheslav ©   (2004-12-03 14:10:00) 

В вобшем такая проблема Мастера. Вызываем 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:00) [1]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо