Russian Qt Forum
Ноябрь 24, 2024, 00:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Многопоточное скачивание файла  (Прочитано 6424 раз)
Lagovas
Гость
« : Август 12, 2011, 13:10 »

Расскажите пожалуйста как скачивать в несколько потоков, в чем толк, и как реализовать (ну или где прочесть о том, как реализовать). И еще, как в итоге потом сохранять скачанное. Ведь надо упорядоченное сохранять.
Как вариант сделать какой нить массив, и побайтно или поблочно его заполнять, а потом массив в файл записывать. Но опять же, это для маленьких файлов, а если большой, то массив в ОЗУ не влезет.
Записан
SimpleSunny
Гость
« Ответ #1 : Август 12, 2011, 21:33 »

Поиском по форуму, были похожие темы с кодом.

Создать несколько потоков, каждый поток закачивает свою часть файла (процес гугления можно начать c wiki). Толк может быть, если сервер ограничивает скорость на соединение, тогда можно повысить скорость скачивания файла.
Сервер может не поддерживать такой метод скачивания или банить за скачивания в несколько потоков.

Сохранение можно организовать так.
Создаем файл на диске размером как скачиваемый. Каждый поток знает смещение от начала файла куда ему следует сохранять данные. Блоками сохраняем данные в файл, согласно смещению.
Записан
Lagovas
Гость
« Ответ #2 : Август 12, 2011, 21:35 »

А как создать файл уже конкретного размера? Забивать его нулями? Хз, поиском искал по сайту, не нашел.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Август 13, 2011, 11:11 »

bool QFile::resize ( qint64 sz )
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Август 13, 2011, 11:21 »

bool QFile::resize ( qint64 sz )

А когда-то было "записать 0 байт"  Улыбающийся
Записан
Etud
Гость
« Ответ #5 : Август 14, 2011, 22:26 »

Расскажите пожалуйста как скачивать в несколько потоков, в чем толк...

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

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

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

Записан
Lagovas
Гость
« Ответ #6 : Август 15, 2011, 00:20 »

сверху обьяснили в чем смысл. Плюс у меня сейчас не ADSL, во вторых он не у всех есть. Сейчас многие юзают нетбуки с моб инетом, как я, и адсл не всегда есть. Плюс не просто так все даунлоадеры реализуют эту фичу.
Записан
Etud
Гость
« Ответ #7 : Август 15, 2011, 16:53 »

Плюс не просто так все даунлоадеры реализуют эту фичу.

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

наше барахло качает и ...много ...потоков, а то что потом скорость резко падает (почему ?!!)
это уже не важно.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.107 секунд. Запросов: 23.