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

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

Как можно реализовать многосекционную закачку файла по http?


Страницы:   1 2 3

Usov ©   (2009-01-27 17:24:00) 

Как можно реализовать многосекционную закачку файла по http протоколу?


Anatoly Podgoretsky   (2009-01-29 12:02:00) [41]

> tesseract  (29.01.2009 11:53:09)  [9]

> Да они и ведут себя в потоке не всегда предсказуемо.

У многих такое c потоками даже без использования ICS


tesseract   (2009-01-29 11:53:00) [42]


> при одной секции все понятно, а как быть если секций 5?


Читать из файла в которой закачиваешь.


> Все, кроме пункта 4, для ICS потоки не нужны,


Да они и ведут себя в потоке не всегда предсказуемо.


Anatoly Podgoretsky   (2009-01-29 11:36:00) [43]

> Usov  (29.01.2009 10:25:06)  [6]

Все, кроме пункта 4, для ICS потоки не нужны, так как он поддерживает событийную модель.


Медвежонок Пятачок   (2009-01-29 10:52:00) [44]

тут напрашивается вопрос при срыве закачки как определить какой сегмент насколько закачан, при одной секции все понятно, а как быть если секций 5?

запоздалый вопрос.
при срыве закачки уже поздняк метаться.
еще при старте потоков, каждый должен знать откуда и докуда ему следует запрашивать рейндж.


Usov   (2009-01-29 10:25:00) [45]

Насколько я понял многие знают ответ но неохотно делятся им:)
Полазил немного по инету, поковырял библиотеку ICS, и пришел к выводу:
для мультисекционной закачки необходимо:
1) открыть файл на диске (TFileStream)
2) создать массив с TidHTTP (количество их равно количеству секций)
3) каждому элементу TidHTTP в свойстве .Reques.Range или .Reques.ContentRangeStart и .Reques.ContentRangeEnd (еще не разобрался) присваиваем этим свойствам соответствующие сегменты файла
4) каждый элемент TidHTTP придется запускать в отдельном потоке
тут напрашивается вопрос при срыве закачки как определить какой сегмент насколько закачан, при одной секции все понятно, а как быть если секций 5?


Медвежонок Пятачок   (2009-01-28 21:25:00) [46]

несколько idhttp


Usov   (2009-01-28 19:54:00) [47]


> У TIdHTTP есть соотвествующие свойства.

Это все понятно, но как организовать несколько одновременных скачек и чтоб это все писать в один файл?


Palladin   (2009-01-28 13:39:00) [48]

У TIdHTTP есть соотвествующие свойства.


Usov   (2009-01-27 22:33:00) [49]

А если по простому, можно ли это сделать с помощью TidHTTP (Indy) или THTTPCli (ICS)?


Palladin   (2009-01-27 18:47:00) [50]

Его изучив. В лице поля заголовка Range.


Страницы:   1 2 3

Наверх

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