Hallo!
Ich habe mir ein kleines Downloadprogramm unter Windows geschrieben. Es läd soweit so gut auch die Dateien runter, aber nicht korrekt. Etwa jede 100'te Adresse (laut XVI32) ist eine Hexadezimalzahl zu viel in meiner Datei. Datendateien werden dadurch natürlich unbrauchbar. :/
Mein GET-String sieht so aus:
Die Downloadschleife sieht wie folgt aus:
Irgendwo dort muss der Wurm liegen. Denn selbst wenn ich den Buffer auf >1MB einstelle, die while Schleife also nur einmal durchläuft, bekomme ich zu viele Daten.:/
Edit: Habe die fiktiven Daten im GET Request durch die Passenden zum meinem nächsten Post ersetzt.
Ich habe mir ein kleines Downloadprogramm unter Windows geschrieben. Es läd soweit so gut auch die Dateien runter, aber nicht korrekt. Etwa jede 100'te Adresse (laut XVI32) ist eine Hexadezimalzahl zu viel in meiner Datei. Datendateien werden dadurch natürlich unbrauchbar. :/
Mein GET-String sieht so aus:
Code:
GET //sprache/trennen/bilder/test.gif HTTP/1.0
From: Testclient@test.de
User-Agent: Testtool/1.0
Host: www.prepolino.ch
Code:
double c; bool ok=false;
ofstream out;
out.open(target.c_str());
while ((bytesReceived = (sockdl.recv(Buffer, RCVBUFSIZE))) != 0)
{
for (int i=0; i<bytesReceived; i++)
{
if (ok) out << Buffer[i];
if (i>3 && Buffer[i-3]=='\015' && Buffer[i-2]=='\012'
&& Buffer[i-1]=='\015' && Buffer[i] =='\012') ok=true;
c++;
}
}
out.close();
if (verbose_level>=3)cout << "Downloaded " << (c/1024)/1024 << "MB successfully!\n";
Edit: Habe die fiktiven Daten im GET Request durch die Passenden zum meinem nächsten Post ersetzt.
Zuletzt bearbeitet: