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

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

ICS под XP


TUser ©   (2004-10-01 13:40:00) 

Вот. Начинаю мучаться с WinXP. Я понимаю, конечно, что эта система - верх совершенства и добродетели, но некоторые проблемы все-таки возникли.
Конкретно. Есть совершенно работающая и давно отлаженная программа, которая что-то качает по FTP. Используется библиотека ICS. Под 2000 и NT4, а также под 9х все работает как часы. Под ХР иногда тоже работает, но переодически (примерно в 10% случаев) возникает Exception на команде Quit. Т.е. все скачивается нормально, но отлогиниться от сервера почему-то не можем. При следующей попытке, естественно, не можем войти - т.к. мы уже там. Проблема возникает и под юзером, и под админом. Скажу сразу, что код прописан в dll, но думаю это не важно.
Что такого особенного в команде Quit? Вот код

function FTPLoad(var AC:string):boolean;
begin
  Form1.Memo1.Lines.Clear;
  try
   result:=length(AC)=4;
   if result then
      try
       FTP.HostDirName:=FTPHost+'/'+copy(AC,2,2);
       FTP.HostFileName:=GetFtpFileName(AC);
       FTP.LocalFileName:=TempFolder+GetLocalFileName(AC);
       if not FTP.Open then
          raise Exception.Create('');
       if not FTP.User then
          raise Exception.Create('');
       if not FTP.Pass then
          raise Exception.Create('');
       if not FTP.TypeSet then
          raise Exception.Create('');
       if not FTP.Cwd then
          raise Exception.Create('');
       if not FTP.Get then
          raise Exception.Create('');
       AC:=FTP.LocalFileName;
       result:=Fileexists(AC);
       FTP.HostDirName:=copy(FTP.HostDirName,1,length(FTP.HostDirName)-3);
       if not FTP.Quit then
          raise Exception.Create('');
      except
       MessageBox(W,'FTP v jope, sorry :(','GREATE BUG',MB_OK);
       FTP.Quit;
       result:=false;
      end;
  finally
   Form1.Hide;
  end;
end;


Lord de Mon   (2004-10-01 17:14:00) [1]

А как насчет дисконнекта?


Наверх

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