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

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

Многопоточный ФТП загрузчик


webSQLNeederr ©   (2008-03-30 13:50:00) 

Есть ФТП сервер и на него нужно ОЧЕНЬ быстро залить файлы. Скажем нужно залить 1000 файлов. Есть идея если сделать несколько (скажем пять) ФТП соединений к одному и тому же серверу и с каждого соединения заливать по одному файлу то скорость увеличится в пять раз.

Так ли это?


palva   (2008-03-31 20:00:00) [1]

Разные случаи бывают.

Например, бывают FTP которые ограничивают количество соединений с одного IP очень небольшой величиной.

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

Вообще здесь можно придумать много разных интересных алгоритмов, как должен действовать клиент при плохой связи. Менеджеры закачек типа ReGet соревнуются между собой, у кого алгоритм эффективнее. Наверняка есть серьезные исследования на эту тему. Правда здесь не загрузка на сервер, а скачка с сервера, но это дела не меняет.


Reindeer Moss Eater   (2008-03-31 12:39:00) [2]

Так ли это?

Так.
Если фтп сервер рубит скорость сессии, а пропускная способность канала от тебя до фтп нигде не меньше этого пятикратного лимита.


clickmaker   (2008-03-31 12:27:00) [3]


> webSQLNeederr   (30.03.08 13:50)

каких файлов?
может их сжимать имеет смысл?


Andy BitOff   (2008-03-30 14:21:00) [4]

Кстати, без понимания таких эдементарных вещей, не стоит браться за сетевое программирование. Сначала надо бы изучить матчасть.


Andy BitOff   (2008-03-30 14:19:00) [5]

> webSQLNeederr   (30.03.08 13:53) [3]
> А как?

Ширина канала не зависит от количества передаваемых данных.
Если в трубу влезает только одно яблоко, то сколько бы ты не пытался туда засунуть ОДНОВРЕМЕННО, влезет вреравно только одно.


Сергей М.   (2008-03-30 13:59:00) [6]

да никак.

Многопоточность не увеличивает сквозную производительность.


webSQLNeederr   (2008-03-30 13:53:00) [7]


> Сергей М. ©   (30.03.08 13:52) [1]
> нет, не так.

А как?


Сергей М.   (2008-03-30 13:52:00) [8]

нет, не так.


webSQLNeederr   (2008-03-30 13:52:00) [9]

То есть первое соединение будет заливать файлы 1-200, второе 201-400 ... и т.д.


Наверх

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