Das google logo.gif ansehen(Http etc.)



  • Wenn ich das mal so sagen darf... dein code ist doch viel zu kompliziert für das was du willst^^ Ich mein das könnten man logger mit der hälfte machen 😉

    mfg



  • ? Ich weiß gerade nicht die GIF Spezifaktion aber normal steht GIF wahrscheinlich am Anfang ... d.h. wäre das so schon ok weil er halt alles was davor steht nicht haben will ... warum auch immer ^^

    Weil davor der HTTP-Header steht und der macht die ganze Datei kaputt deswegen muss der vorher weg.



  • trotzdem, sag doch mal wofür genau du das brauchst, weiles gäbe diverse einfachere möglichkeiten, ein simpler downloadmanager z.b.



  • ICh wollte einfach mal ausprobieren etwas über http herunterzuladen wenn es auch einfacher geht dann würde ich es auch einfacher machen ^^



  • ich hau mich morgen mal dahinter, eigentlich n ganzt interessanter gedanke ^^
    was spricht eigentlich gegen rechtsklick bild speichern unter ?



  • ceos schrieb:

    was spricht eigentlich gegen rechtsklick bild speichern unter?

    Ich finds immer toll, wenn es Menschen gibt die wissen wollen, wie man's selbst macht.

    Greetz, Swordfish



  • twitch schrieb:

    file.write(get.c_str(),strlen(get.c_str())); //
    

    Das funktioniert so nicht. Die Variable get ist ein std::string. Und ein std::string kann (im gegensatz zur Behauptung von Ceos 👎 ) sehr wohl mit Steuerzeichen umgehen. strlen allerdings nicht. Ein strlen(get.c_str()) liefert die Anzahl der Bytes bis zum ersten Null-Zeichen, welcher wahrscheinlich in deiner GIF-Datei vorkommt. Um die Länge des Strings zu bekommen, solltest Du get.size() verwenden.

    Und noch ein Tip: Die http-Header werden von der Zeichenfolge "\r\n\r\n", also eine Leerzeile vom http-Body getrennt. Statt nach "GIF" zu suchen, solltest Du nach dieser Zeichenfolge suchen. Damit bist Du nicht auf GIF beschränkt.

    Tntnet



  • ich find solche spitzen echt nett

    (im gegensatz zur Behauptung von Ceos 👎 )

    das nächste mal liesst du dir meinen satz genauer durch
    DANKE 🙄

    das erklärt aber nicht wieso dann bei mir der string nicht funktioniert hat, und ich habe sogar mit dem result von recv(); gearbeitet, mich also garnicht erst mit strlen oder size rumgeschlagen...
    dennoch hat mir der string nach ein paar bytes schlicht und einfach die ausgabe verwehrt (und damit mein ich nciht die ausgabe auf dem bildschrim sondern das zeichenweise senden was ich irrtümlicherweise angetrebt hatte, das brach nach knapp 30 zeichen einfach mit zugriffsverletzung ab)
    ich habs nicht weiter debuggt sondern einfach n char array angelegt



  • Ceos schrieb:

    (was ich meine, "get" ist ein std::string, das verhalten bei steuerzeichen ist nicht unbedingt vorhersehbar, kann sein das er dafür missbraucht werden kann aber das hab ich noch nicht selber getestet)

    Ich verstehe diesen Satz so, daß Du uns darüber in Kenntnis setzen willst, daß Du nicht weißt, ob Steuerzeichen im std::string ok sind. Zufällig weiß ich, daß das Verhalten eines std::strings bei Steuerzeichen vorhersebar ist. Nämlich Steuerzeichen inklusive Null-Byte sind im std::string ok. Du kannst beliebige Binärdaten inklusive GIF-Grafiken in einem std::string halten.

    Wenn Du Probleme mit Steuerzeichen in einem std::string, dann liegt das nicht am std::string, sondern in der Art und Weise, wie Du damit umgehst. Wäre sicherlich hilfreich, wenn Du die Codesequenz posten könntest, wo Du probleme hattest.

    Dennoch entschuldige ich mich, wenn Du Dich angegriffen gefühlt hast. Das war nicht meine Absicht.

    Tntnet



  • leider hab ich den code in der form nicht mehr aber mir dämmert da was, kann es sein das c_str() nur bis zu einem \0 geht, ich glaub ich hatte das in der art ausgelesen, hatte dann zwar noch was mit zeichenweise implementiert aber wieder verworfen und hab gleich n kopierarray angelegt


Anmelden zum Antworten