Автор
|
Тема: проблема с download через сокеты ...
|
DEVIL |
опубликован 13-03-2001 21:40 MSK
делается коннект через сокеты с HTTP серваком на 80 порт на предмет скачки файла в соответствии с HTTP/1.0 ... проблема в следующем - при получении ответа файлик не совпадает с оригиналом, т.е. видимо не весь ... локально файлик сохраняется с помощью fputs - может потеря "непечатаемых символов" ??? плз, хелп ... спасибо ...
|
Flex Ferrum
|
опубликован 14-03-2001 11:38 MSK
А на сколько различается? Чего именно не хватает? Кстати, а "оригинал" ты как делал? Дело в том, что эксплорер, при сохранении файла через "save as...", сохраняет не оригинальный документ. |
DEVIL
|
опубликован 14-03-2001 17:54 MSK
оригинал - это закачанный мной через ftp zip файлик размером ~501 байт ... когда отвечает сервак сначала идет ASCII инфа о запрашиваемом файле - протокол, дата, сервер и т.д. ... потом отдают сам zip ... он не соответсвует закачанному даже по заголовку ... вернее некоторые символы не те ... |
Demo_S
|
опубликован 15-03-2001 03:06 MSK
У меня была похожая проблема, дело в том, что пишуться строки которые заканциваются нулем. В моем случае все дело было в этом нуле. Я получал данные в массив 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
Понятно. Так бы сразу и написал. Мало того, что fputs записывает строки только до первого нуля, так еще и заменяет символ с кодом 0x0a на 0x0d 0x0a. Из за этого коробится весь файл. Так вот, при открывании файла используй строчку флагов "wb" (обязательно b, не t), и данные записывай через fwrite. |