WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  проблема с download через сокеты ...

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   проблема с download через сокеты ...
DEVIL опубликован 13-03-2001 21:40 MSK   Click Here to See the Profile for DEVIL   Click Here to Email DEVIL  
делается коннект через сокеты с HTTP серваком на 80 порт на предмет скачки файла в соответствии с HTTP/1.0 ... проблема в следующем - при получении ответа файлик не совпадает с оригиналом, т.е. видимо не весь ... локально файлик сохраняется с помощью fputs - может потеря "непечатаемых символов" ??? плз, хелп ... спасибо ...
Flex Ferrum опубликован 14-03-2001 11:38 MSK     Click Here to See the Profile for Flex Ferrum  Click Here to Email Flex Ferrum     
А на сколько различается? Чего именно не хватает? Кстати, а "оригинал" ты как делал? Дело в том, что эксплорер, при сохранении файла через "save as...", сохраняет не оригинальный документ.
DEVIL опубликован 14-03-2001 17:54 MSK     Click Here to See the Profile for DEVIL  Click Here to Email DEVIL     
оригинал - это закачанный мной через ftp zip файлик размером ~501 байт ... когда отвечает сервак сначала идет ASCII инфа о запрашиваемом файле - протокол, дата, сервер и т.д. ... потом отдают сам zip ... он не соответсвует закачанному даже по заголовку ... вернее некоторые символы не те ...
Demo_S опубликован 15-03-2001 03:06 MSK     Click Here to See the Profile for Demo_S  Click Here to Email Demo_S     
У меня была похожая проблема, дело в том, что
пишуться строки которые заканциваются нулем.
В моем случае все дело было в этом нуле.
Я получал данные в массив char text[1024]
а потом писал их в файл

while(res!=0)
{
res=recv(Sock,text,1024,0);
WriteFile(log,text,res,&nWritten,0);
}

правда под виндой.

Flex Ferrum опубликован 15-03-2001 12:27 MSK     Click Here to See the Profile for Flex Ferrum  Click Here to Email Flex Ferrum     
Понятно. Так бы сразу и написал. Мало того, что fputs записывает строки только до первого нуля, так еще и заменяет символ с кодом 0x0a на 0x0d 0x0a. Из за этого коробится весь файл. Так вот, при открывании файла используй строчку флагов "wb" (обязательно b, не t), и данные записывай через fwrite.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.