Использование Wininet Api

  • Автор темы Автор темы shisik
  • Дата начала Дата начала
S

shisik

Пишу свою качалку для интернета с возможностью докачки файлов. Использую WinInet API. Для организации докачки есть функция InternetSetFilePointer. Только после её использования файл не начинает качаться с указанной позиции, а качается "вхолостую" до указанной позиции, а потом продолжает качаться нормально. При этом функция InternetReadFile не возвращает управление, пока не дойдёт до позиции, указанной в InternetSetFilePointer.
В интернете я нашел объяснение: проблема в том, что если файла нет в кеше (Temporary Internet Files), то он его скачивает сначала в кеш (целиком), а потом уже дальше. И действительно, пока файл скачан не на 100% в интернет-кеше его нет. Потом, когда скачается полностью, он там появляется.
Возникает вопрос: можно ли это как-нибудь обойти? Можно ли заставить программу (или wininet) писать недокачанные файлы в интернет-кеш? Или ещё лучше создать свой локальный кеш (чтоб при очистке общего кеша не удалялись файлы), в который и будут скачиваться файлы. Или например чтоб кешем считался сам файл, независимо от его местонахождения. Это был бы самый оптимальный вариант :) В конце концов, другие "качалки" это ж умеют...

ЗЫ. Возникает вопрос к Microsoft: какой "умный" человек так реализовал InternetSetFilePointer/InternetReadFile?
 
Скажите, пожалуйста, как проверить на ошибки программу, написанную в Microsoft Visual C++ 2005 Express Edition
 
OMG! Зачем же так некропостить? :) Да и какое вопрос имеет отношение к топику?
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab