Форум: "Сети";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Вниз
Скачивание файлов с использованием wininet Найти похожие ветки
← →
Dimaxx (2004-06-11 23:24) [0]Вопрос к мастерам по поводу проверки правильности моих действий (я пишу не все, а только основные действия) и поправьте меня, если что не так:
Используем wininet
Допустим, мне надо закачать файл с сервака в несколько потоков, да еще и с докачкой. Используем переменные:var
hSession: HINTERNET;
hService: HINTERNET;
Открываем сессию командойhSession:=InternetOpen("MyApp",INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0);
Далее открываем URLhService:=InternetOpenUrl(hSession,PChar(aUrl),nil,0,INTERNET_FLAG_RELOAD,0);
и начинаем скачивать файл командойdwBytesRead:=1024;
InternetReadFile(hService,@lpBuffer,1024,dwBytesRead);
после скачивания закрываемInternetCloseHandle(hService);
InternetCloseHandle(hSession);
Все, получили файл на диске.
Это для одного куска файла. Как я понял, для скачивания, скажем, в 4 потока мне нужно открыть столько же раз тот же URL (каждый под своей переменной типа HINTERNET), а потом установить указатель скачиваемого файла в нужную позицию каждого потока с помощью командыInternetSetFilePointer
. Далее выполнить скачивание каждой части черезInternetReadFile
.
Теперь, собственно, вопрос (вернее, два):
1) Как узнать поддерживает ли сервак докачку (ведь и такое бывает)?
2) Как закачивать все потоки одновременно (через Thread или как-то по-другому)?
Может, для данного варианта какие-то флаги специальные нужны и еще что - просветите. Может, у кого есть пример рабочий или сырец какой по этому вопросу, отмыльте, плз.
Спасибо за внимание!
← →
Dimaxx (2004-06-13 22:32) [1]Что, неужели никто не пользовался?
← →
BlackBaracuda © (2004-06-26 20:20) [2]Приведи ПОЛНЫЙ код своей программы.
← →
Rouse_ © (2004-06-26 20:24) [3]> Как я понял, для скачивания, скажем, в 4 потока мне нужно
> открыть столько же раз тот же URL (каждый под своей переменной
> типа HINTERNET),
нет, достаточно одной таблЭтки типа hService: HINTERNET;
> Как закачивать все потоки одновременно (через Thread или
> как-то по-другому)?
А разве есть еще какието методы?
> Как узнать поддерживает ли сервак докачку (ведь и такое
> бывает)?
Это в RFC описано по FTP (к сожалению не могу сказать номер, а искать лень :)
← →
Dimaxx (2004-06-28 00:55) [4]В том-то и дело, что я тока начинаю исследовать эту область и вот возник вопрос. Программы еще нет, пока идет исследование этой области.
2 Rouse_: Ключевое слово, строка (что искать?) И вообще - смысл написания правильный?
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c