Http - Client
-
Wie gesagt stringfunktionen funktionieren definitiv nicht. memcpy funktioniert. Du brauchst aber etwas Zeigerarithmetik.
Kurt
-
Will mal nicht so sein. Ungefähr so sollte es funktionieren ( ungetestet )
char * tmp = 0; unsigned int sz_read; while( (n = read(s, buf, LINELEN)) > 0) { if (!tmp){ tmp = (char*) malloc( sz_read ); memcpy( tmp, buf, n ); } else { tmp = (char*) realloc( tmp, sz_read ); memcpy( tmp+sz_read, buf, n ); } sz_read += n; }
Kurt
-
Danke für den Tip.
Hab das sz_read += n; vor dem if verschoben. Die Datei wird heruntergeladen ist aber unvollstandig(etwa 100 Byte) fehlen.
Der Header schaut etwas komisch aus:HTTP/1.0 200 OK^M Content-Type: image/gif^M Last-Modified: Mon, 25 Apr 2005 21:07:03 GMT^M Expires: Sun, 17 Jan 2038 19:14:07 GMT^M ^@^@^@^@9?^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@Server: GWS/2.1^M Content-Length: 9121^M Date: Sun, 04 Dec 2005 15:40:51 GMT^M Connection: Keep-Alive^M ^M
Wo kommen die ganzen @@^@ her?
-
Kleiner fehler im code ( wollte dich testen
)
char * tmp = 0; unsigned int sz_read = 0; while( (n = read(s, buf, LINELEN)) > 0) { if (!tmp){ tmp = (char*) malloc( n ); memcpy( tmp, buf, n ); } else { tmp = (char*) realloc( tmp, sz_read ); memcpy( tmp+sz_read, buf, n ); } sz_read += n; }
Kurt
-
Endlich klappt es!!!
Danke an alle für die guten Tips, vor allem Kurt.