Russian Qt Forum

Qt => Работа с сетью => Тема начата: Lagovas от Август 12, 2011, 13:10



Название: Многопоточное скачивание файла
Отправлено: Lagovas от Август 12, 2011, 13:10
Расскажите пожалуйста как скачивать в несколько потоков, в чем толк, и как реализовать (ну или где прочесть о том, как реализовать). И еще, как в итоге потом сохранять скачанное. Ведь надо упорядоченное сохранять.
Как вариант сделать какой нить массив, и побайтно или поблочно его заполнять, а потом массив в файл записывать. Но опять же, это для маленьких файлов, а если большой, то массив в ОЗУ не влезет.


Название: Re: Многопоточное скачивание файла
Отправлено: SimpleSunny от Август 12, 2011, 21:33
Поиском по форуму, были похожие темы с кодом.

Создать несколько потоков, каждый поток закачивает свою часть файла (процес гугления можно начать c wiki (http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%B8_HTTP#.D0.91.D0.B0.D0.B9.D1.82.D0.BE.D0.B2.D1.8B.D0.B5_.D0.B4.D0.B8.D0.B0.D0.BF.D0.B0.D0.B7.D0.BE.D0.BD.D1.8B)). Толк может быть, если сервер ограничивает скорость на соединение, тогда можно повысить скорость скачивания файла.
Сервер может не поддерживать такой метод скачивания или банить за скачивания в несколько потоков.

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


Название: Re: Многопоточное скачивание файла
Отправлено: Lagovas от Август 12, 2011, 21:35
А как создать файл уже конкретного размера? Забивать его нулями? Хз, поиском искал по сайту, не нашел.


Название: Re: Многопоточное скачивание файла
Отправлено: Пантер от Август 13, 2011, 11:11
bool QFile::resize ( qint64 sz )


Название: Re: Многопоточное скачивание файла
Отправлено: Igors от Август 13, 2011, 11:21
bool QFile::resize ( qint64 sz )

А когда-то было "записать 0 байт"  :)


Название: Re: Многопоточное скачивание файла
Отправлено: Etud от Август 14, 2011, 22:26
Расскажите пожалуйста как скачивать в несколько потоков, в чем толк...

А смысл ?!! Думаете быстрее качнет ?

Когда был dial-up выигрыш был, сейчас на ADSL скорости Вам не хватает ?

Интересно, экперимент кто-нибудь ставил по скорости.



Название: Re: Многопоточное скачивание файла
Отправлено: Lagovas от Август 15, 2011, 00:20
сверху обьяснили в чем смысл. Плюс у меня сейчас не ADSL, во вторых он не у всех есть. Сейчас многие юзают нетбуки с моб инетом, как я, и адсл не всегда есть. Плюс не просто так все даунлоадеры реализуют эту фичу.


Название: Re: Многопоточное скачивание файла
Отправлено: Etud от Август 15, 2011, 16:53
Плюс не просто так все даунлоадеры реализуют эту фичу.

удивитесь, но рассчитано на простых домохозяек.

наше барахло качает и ...много ...потоков, а то что потом скорость резко падает (почему ?!!)
это уже не важно.