Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

05.04.2013, 11:49

HTTP chunk zu klein?

Hallo liebe Community,

ich programmiere zur Zeit ein kleines Programm welches mit einfachen Mitteln überprüfen soll, ob sich etwas auf einer Website verändert hat und den Nutzer dann alarmiert. Die HTTP Anfragen/Antworten werden mit Hilfe von Windows sockets verschickt und empfangen, soweit sogut. Bei größeren Seiten kommt es vor, dass der Server die Seite in mehreren chunks verschickt und dies im Header deutlich macht. Zu Beginn jedes chunks schickt er die Größe des chunks in hex. Diese lese ich aus und schreibe solange die empfangenen Daten in eine Datei, bis die Größe des chunks erreicht ist und prüfe, ob eine weiterer chunk vorhanden ist, bis ein chunk der Größe 0 eintrifft.
Zu meinem Problem: Ich teste das Programm einfach mit google.de. Google schickt mir einen riesigen chunk der Größe 32768(dec) den ich auch vollständig erhalte, allerdings folgt danach keine neue chunk größe, sondern es wird einfach weiter Inhalt gesendet. Mein Programm bricht ab, da es die Informationen nicht interpretieren kann. Ich versuche nun schon seit Tagen das Problem in den Griff zu bekommen, aber finde keinen Fehler.
Eine kleine Frage noch nebenbei: das Programm unterstützt kein Unicode, kann das etwas mit meinem Problem zutun haben? Ich habe mir gedacht, zum Vergleich, ob sich etwas geändert hat ist der Zeichensatz eigentlich egal.
Bei Bedarf schicke ich auch gerne ein bisschen Code, hoffentlich kann mir jemand helfen :)

newby

2

05.04.2013, 14:46

Das Problem hat sich erledigt, ich habe in einer meiner Netzwerkklassen vergessen einem Char array nach dem Empfangen der Daten ein terminierendes \0 hinzuzufügen, dadurch wurden bei jedem Empfang circa 8 Byte zuviel in die Datei geschrieben. Bitter aber typisch ;) Die einzige Stelle im Programm die mit chars anstatt mit std::string arbeitet (bzw. arbeiten muss).