Конференция "Сети" » Delphi 7 + Indy 9 - Докачка [D7, WinXP]
 
  • Vasilich71 (20.06.14 17:29) [0]
    Добрый день.
    Есть программа она выкасивает себе данные с FTP сервера.
    Решил добавить поддержку докачки.
    Вот строчки было и стало.

    // без докачки
    IdFTP1.Get(RemoteList.Strings[i], LocalList.Strings[i], True, False);
    // с докачкой
    IdFTP1.Get(RemoteList.Strings[i], LocalList.Strings[i], False, True);



    При обрыве соединения всё происходит как будто докачивается, но файл при этом становится битым.

    Что делать?
  • Дмитрий Белькевич (27.06.14 23:29) [1]
    Смотреть, как именно побилось. Насколько я знаю, программы докачивают с небольшим 'зазором'.
  • Vasilich71 (01.07.14 18:11) [2]
    Разбирал, действительно качает не с того места где оборвалось.
    Если отстрелить пользователя от FTP то всё нормально докачивает. А если имитировать обрыв связи, против чего и боролся, то пишет не с того смещения.

    1 качам файл.
    2 выдергиваем кабель из сетевой карты.
    3 смотрим на размер того, что закачалось. К примеру 123456.
    4 включаем всё на место.
    5 подаём команду Get...
    6 на FTP приходит команда REST 123456
    7 докачивается файл. Всё хорошо. Как бы. файло битое.

    Проблема в том, что управлять этим я не могу. Сказал бы "GET начиная с 123000" и оно бы скачало правильно. Так никак-же.
  • Дмитрий Белькевич (27.07.14 00:30) [3]
    Правь инди:


         if AResume then begin
           Self.SendCmd('REST ' + IntToStr(ASource.Position), [350]);   {do not localize}

 
Конференция "Сети" » Delphi 7 + Indy 9 - Докачка [D7, WinXP]
Есть новые Нет новых   [118685   +14][b:0][p:0.001]