Hi,
Hab einen einfachen HTTP Clienten geschrieben.
Der einen Webserver nach einer .rar Datei fragt.
Der Webserver antwortet und schickt mir auch den Header und die Datei durch den Socket.
Um die Datei zu speichern hab ich die Headerdaten ausgelesen.
Nachdem die Zeile "Content-Length:" ausgelesen wurde, wird eine weitere Leerzeile geloescht.
Die Restlichen Daten aus dem Socket werden dann in die Datei geschrieben.
Wie folgt:
while($line = <$socket>){
print FILE $line;
}
wenn ich die erstellte Datei nun mit der Orginalversion vergleiche, stosse ich an rund 50 Stellen, an denen die beiden Dateien nicht identisch sind.
Hier mal ein kleines Beispiel in dem die Zeile 2897 verglichen wird
orginal file:
0.╝
1.`
2.8
3.û
4.☻
5.|
6.║
7.┘
8.
ende
file copy:
0.╝
1.`
2.8
3.û
4.☻
5.|
6.║
7.┘
ende
wie man erkennen kann ist in der orginalen Datei noch ein Leerzeichen oder Steuerungszeichen, das man nicht erkennen kann.
Wenn ich mir beim Socket auslesen, genau diese Zeile anschaue, kommt sie noch korrekt an.
Das Problem sollte also beim Datei schreiben auftreten.
Waer cool wenn mir da einer helfen koennte.
Hab schon ne menge versucht und bekomm es nicht gebacken.
mfg
gartenumgraben