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

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

Проблема с инди фтп [D7, Win2k, WinXP]


KyRo ©   (2006-09-15 13:19:00) 

У меня проблема при загрузке системы инди фтп клиент не хочет загружать данные с сервера.
На нем стоит
idFtp1.ReadTimeout:=1000;
При этом не какая ошибка не происходит и не отваливается по таймауту !!!
Вот лог работы клиента
Stat Connected.
Recv 15.09.2006 12:09:20: 220 Serv-U FTP Server v6.1 for WinSock ready...<EOL>
Sent 15.09.2006 12:09:20: USER update<EOL>
Recv 15.09.2006 12:09:20: 331 User name okay, need password.<EOL>
Sent 15.09.2006 12:09:20: PASS update<EOL>
Recv 15.09.2006 12:09:20: 230 User logged in, proceed.<EOL>
Sent 15.09.2006 12:09:20: TYPE I<EOL>
Recv 15.09.2006 12:09:20: 200 Type set to I.<EOL>
Sent 15.09.2006 12:09:20: SYST<EOL>
Recv 15.09.2006 12:09:20: 215 UNIX Type: L8<EOL>
Sent 15.09.2006 12:09:20: SIZE Ver_Client.txt<EOL>
Recv 15.09.2006 12:09:20: 213 7<EOL>
Sent 15.09.2006 12:09:20: PORT 10,0,10,65,4,32<EOL>
Recv 15.09.2006 12:09:20: 200 PORT Command successful.<EOL>
Sent 15.09.2006 12:09:20: RETR Ver_Client.txt<EOL>
Recv 15.09.2006 12:09:20: 150 Opening BINARY mode data connection for Ver_Client.txt (7 Bytes).<EOL>
Stat Disconnected.
Stat Connected.
Recv 15.09.2006 12:12:20: 220 Serv-U FTP Server v6.1 for WinSock ready...<EOL>
Sent 15.09.2006 12:12:20: USER update<EOL>
Recv 15.09.2006 12:12:20: 331 User name okay, need password.<EOL>
Sent 15.09.2006 12:12:20: PASS update<EOL>
Recv 15.09.2006 12:12:20: 230 User logged in, proceed.<EOL>
Sent 15.09.2006 12:12:20: TYPE I<EOL>
Recv 15.09.2006 12:12:20: 200 Type set to I.<EOL>
Sent 15.09.2006 12:12:20: SYST<EOL>
Recv 15.09.2006 12:12:20: 215 UNIX Type: L8<EOL>
Sent 15.09.2006 12:12:20: SIZE Ver_Client.txt<EOL>
Recv 15.09.2006 12:12:20: 213 7<EOL>



Происходит это только после перезагрузки системы !! Может у кого то было что то похожее ?


KyRo   (2006-09-15 15:02:00) [1]

ок спасибо !


Сергей М.   (2006-09-15 14:45:00) [2]

Если твой ФТП-клиент работает через NAT (и иже с ним по смыслу), то активный режим может быть задействован толькопосле его (NAT'а) соотв.настроек.


Сергей М.   (2006-09-15 14:43:00) [3]


> В чем может быть загвоздка ?


В том что некая программа (файрвол, антивирус или что-то еще) перекрыла доступ к указанному порту извне.


> не повлияет ли пасивный режим как небуть на работу программы


В общем и целом не повлияет.
Активный режим дает некие преимущества, но поскольку ты о них ничего не знаешь, этот режим тебе нафиг не нужен.


KyRo   (2006-09-15 14:35:00) [4]

В пасивном отработало !!!!
В чем может быть загвоздка ? И не повлияет ли пасивный режим как небуть на работу программы ?


Сергей М.   (2006-09-15 13:56:00) [5]

Отключи опцию активного FTP-протокола и попробуй


KyRo   (2006-09-15 13:51:00) [6]


> Dmitrij_K   (15.09.06 13:45) [2]
> таймаут 1 секунда это плохо


Он все равно не происходит !!! Не не ошибки , ничего просто залипает и все ! Блок EXCEPT не срабатывает


KyRo   (2006-09-15 13:48:00) [7]

А где хоть примерно она может быть ? Если все отлично работает когда система уже загружена !!  А если программа стартует автоматически после перезагрузки происходит вот такая херня.
//Считываем версию на сервере
 Try
     idFtp1.Connect(True,10000);
 EXCEPT
     label5.Caption:='no';
   if time_aut = 0
      then
        begin
          time_aut:=1 ;
          StartTimer.Interval:=300000;
          TrayIcon1.MinimizeApp;
          StartTimer.Enabled:=True;
          idFtp1.Disconnect;
          exit;
        end
      else
        begin
           Start_Upd.Enabled:=True;
           label5.Caption:='no';
           exit;
        end;
 END;
  try
    size:=idFtp1.Size('Ver_Client.txt');
  EXCEPT
     // Если не удалось прочитать по таймауту
    if StartTimer.Interval= 200
       then size:=0;
  END;
if size = 0
    then
      begin
        if time_aut <> 0
           then
              begin
                 label5.Caption:='no';
                 Start_Upd.Enabled:=True;
                 idFtp1.Disconnect;
                 exit;
              end;
         time_aut:=1 ;
         StartTimer.Interval:=300000;
         TrayIcon1.MinimizeApp;
         idFtp1.Disconnect;
         StartTimer.Enabled:=True;
         exit;
      end ;
 Try
   idFtp1.Get('Ver_Client.txt',ExtractFilePath(Application.ExeName)+ '\Rolback\Ver_Client.txt',True,False);
 EXCEPT
  if StartTimer.Interval= 200
       then exit;
  if time_aut = 0
      then
        begin
          time_aut:=1 ;
          StartTimer.Interval:=300000;
          TrayIcon1.MinimizeApp;
          idFtp1.Disconnect;
          StartTimer.Enabled:=True;
          exit;
        end
      else
        begin
          Start_Upd.Enabled:=True;
          idFtp1.Disconnect;
          label5.Caption:='no';
          exit;
        end;
 END;


И вот как видно из кода и лога проходит конект ,проходит запрос размера файла  , а когда начинаю грузить файл на этом и залипает . А если отключаюсь и второй раз пытаюсь приконектится происходит

Stat Connected.
Recv 15.09.2006 12:12:20: 220 Serv-U FTP Server v6.1 for WinSock ready...<EOL>
Sent 15.09.2006 12:12:20: USER update<EOL>
Recv 15.09.2006 12:12:20: 331 User name okay, need password.<EOL>
Sent 15.09.2006 12:12:20: PASS update<EOL>
Recv 15.09.2006 12:12:20: 230 User logged in, proceed.<EOL>
Sent 15.09.2006 12:12:20: TYPE I<EOL>
Recv 15.09.2006 12:12:20: 200 Type set to I.<EOL>
Sent 15.09.2006 12:12:20: SYST<EOL>
Recv 15.09.2006 12:12:20: 215 UNIX Type: L8<EOL>
Sent 15.09.2006 12:12:20: SIZE Ver_Client.txt<EOL>
Recv 15.09.2006 12:12:20: 213 7<EOL>

Вот это .
Кстати не могут антивирусы как то перебивать заливку ?


Dmitrij_K   (2006-09-15 13:45:00) [8]

таймаут 1 секунда это плохо


Сергей М.   (2006-09-15 13:35:00) [9]

у тебя ошибка в программе


Наверх

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