Докачка файла по http

Тема в разделе "WASM.NETWORKS", создана пользователем Saint German, 23 фев 2005.

  1. Saint German

    Saint German New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2003
    Сообщения:
    222
    Расскажите, пожалуйста, подробнее и на пальцах,

    или пошлите куда-то почитать, только не на гугль(:)), был там уже - не нашел.

    Вот есть такая задача:

    есть скрипт php, есть файл и есть программа-клиент.

    Скачать файл без докачки просто:

    get_request_header db "GET /index.html",CR,LF

    db "User-agent: GetRequest",CR,LF

    db "Host: localhost",CR,LF

    db CR,LF

    db 0

    Делай асинхроные сокеты, к примеру и записывай в файл.

    Или post запрос:

    post_request_header db "POST getfile.php HTTP/1.0",CR,LF ; db "User-agent: PostRequest",CR,LF

    db "Host: localhost",CR,LF

    db "Content-Type: application/x-www-form-urlencoded",CR,LF

    db "Content-Length: 10",CR,LF ; 32

    db CR,LF

    db "fname=index.html",CR,LF db CR,LF

    db 0

    Скрипт getfile.php получет в параметре fname имя и читает файл echo его содержимое.



    Вообще интересует post запрос, что прежде чем закачивать,

    скрипт успел обработать файл, расшифровать к примеру.
     
  2. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Не те слова видимо в поиске задавал.

    Я правда сделал проще : посмотрел протокол

    flashget и потом проверил, что строчка

    "Range: bytes=хххххх" действительно означает то,

    что тебе надо.

    Winsock Control and HTTP - Retrieving Partial Content

    http://www.vbip.com/winsock/winsock_http_08_01.asp
     
  3. Songoku

    Songoku Эдгар

    Публикаций:
    0
    Регистрация:
    1 мар 2003
    Сообщения:
    68
    Адрес:
    Belarus
    ВОТ Я использоват такуб функцию ...
    Код (Text):
    1.  
    2. proc InetReadFile,conn
    3. enter
    4. push    ebx edi esi
    5. invoke  LocalAlloc,LPTR,1024*20
    6. mov     ebx,eax
    7. mov     esi,eax
    8. xor     edi,edi
    9. inc     edi
    10. @@:
    11. invoke  InternetReadFile,[conn],ebx,edi,esp,0
    12. add     ebx,edi
    13. pop     edi
    14. test    edi,edi
    15. jne     @B
    16. and     byte[ebx],0
    17. mov     eax,esi
    18. pop     esi edi ebx
    19. return
    20. endp      
    21.  




    только смотри что бы файл не привышал размер выделенного пространства :)
     
  4. Saint German

    Saint German New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2003
    Сообщения:
    222
    Для Songoku:

    wininet-функции чрезвычайно полезные, но для их работы необходимо, что-бы у процесса была очередь сообщений.

    т.е. сервис без взаимодействия с "рабочим столом"

    использовать эти функции корректно не сможет.