Problem mit Bilddatein an Socket senden



  • Hallo Board

    Ich muß im Rahmen eines C++ Kurses einen kleinen Webserver in C++ schreiben.
    Nun habe ich das Problem das ich zwar Text( html ) Files an den Client ( normaler Browser ) schicken kann, allerdings keine Bilddatein wie jpg oder gif

    mein Code sieht so aus ...

    FILE* datei;
    char* buffer;
    datei = fopen("C:\\test.html","r")
    while(!feof(datei))
    {
      buffer = new char[512];
      fgets(buffer,512,datei)
      send(Client,buffer,strlen(buffer),0)
      delete buffer;
    }
    fclose(datei);
    

    Kann mir jemand mir jemand erklären ( für Anfänger ) wie das für eine Bilddatei aussehen müßte ?

    Gruss StefanH



  • Hallo,
    schau/such mal hier im Forum. Es gab einen beitrag zu Herunterladen eines Bildes. Vielleicht hilft dir der weiter.
    Turbobrain



  • Hast du auch den richtigen HTTP-Header vorher gesendet? daran könnte es vielleciht liegen, dass der Browser die Datei ordnungsgemäs empfängt, aber nihct weiß, was das für Daten sind



  • Wie http header?!
    wie soll das dann aussehen?! was muss da dann stehen?!



  • Ne, HTTP Header habe ich keinen gesendet. Aber ich werde es mal damit versuchen.



  • Also am HTTP Header dürfte es nicht gelegen sein.
    Ich habe vor dem File das gesendet

    char buffer[512];
    
    	strcpy(buffer,"HTTP/1.1 200 OK\r\n");
    	send(client,buffer,strlen(buffer),0);
    	strcpy(buffer,"Server: Test Webserver 0.1.0\r\n");
    	send(client,buffer,strlen(buffer),0);
    	strcpy(buffer,"Content-Type: image/jpeg\r\n");
    	send(client,buffer,strlen(buffer),0);
    	strcpy(buffer,"\r\n");
    	send(client,buffer,strlen(buffer),0);
    

    Leider kommt wieder nur ein rotes X 😞



  • Hi,

    versuch mal das Bild-File binär zu öffnen, dann müsste es gehen.

    Ciao charlie


Anmelden zum Antworten