воскресенье, 1 февраля 2015 г.
Программа для скачивания бинарных файлов по HTTP
Программа для скачивания бинарных файлов по HTTP
Надеюсь, все уже изучили пример отправки сообщения на ICQ, которая демонстрирует 2 вещи: работа с сокетами (послали команду, считали ответ - точно также, как читать из файла) и отправка POST запросов (генерация параметров, кодирование, вставка переменных в POST запрос).Здесь тоже самое: открываем сокет, шлем GET форму, читаем ответ. Ответ состоит из 2х вещей: заголовок и тело документа. Т.к. название данной статьи - получение файла, то очевидно, нас наиболее волнует именно тело документа (т.е. файл), а не все, что выдаст сервер. Тело от заголовка отделено строкой "\r\n".
Чтобы применить программу, замените строку "php.spb.ru" на имя вебсервера в 2х местах. Затем замените "/files/notepad.exe" на путь к файлу... В конце программы вместо "download.tmp" укажите, куда поместить скаченный файл (и надо ли его вообще в файл записывать).
|
Не забываем читать бинарные данные из сокета функций fread, а заголовок - текстовой функцией fgets. Можно все читать fread, но fgets нас избавит от не простого поиска пустой строки, отделяющей заголовок от тела.
Для записи файла открываем его в режиме "wb+": если файла не было - создать ("плюс"), если был - урезать до 0 байт ("w"), открыть в режиме бинарной записи ("b").
0 коммент.:
Отправить комментарий