Comment envoyer une image sur le protocole HTTP en C?

Je suis un étudiant de faire un serveur web, de l'exercice et j'ai besoin d'un peu d'aide.

J'ai mon serveur web fonctionne très bien pour les pages de texte, mais à chaque fois que le navigateur envoie une ---GET /img.jpg HTTP/1.1 demande, je ne sais pas comment le gérer. J'ai entendu le protocole HTTP est à base de texte, alors comment puis-je envoyer une image dans ma réponse HTTP?

Ici est un segment où je créer mon normal l'adresse HTTP de la réponse, j'ai l'intention d'utiliser readresult == 2 pour signaler une image.

if(readresult == 1){
    sprintf(toreturn, "%s\r\n%s\r\n%s\r\n\r\n%s", "HTTP/1.1 200 OK", "Content-Type: text/html", "Connection: close", readpagestring);
    returnflag = 1;
}
else if(readresult == 2){
    returnflag = 2;
}
else{
    sprintf(toreturn, "%s\r\n%s\r\n%s\r\n\r\n%s", "HTTP/1.1 404 Not Found", "Content-Type: text/html", "Connection: close", readpagestring);
    returnflag = 0;
}

Et la fonction qu'il appelle

int readpage(char *readaddress, char *pagereturn){
    FILE *inputfile = (FILE *)calloc(1,sizeof(FILE));
    int flag;
    int c;
    int n = 0;
    readaddress++;
    inputfile=fopen(readaddress,"r");
    if (inputfile==NULL){
        FILE *missingfile;
        missingfile=fopen("404.html","r");
        while ((c = fgetc (missingfile)) != EOF){
            *(pagereturn+n) = c;
            n++;
        }
        flag = 0;
        fclose (missingfile);
    }
    else{
        while ((c = fgetc (inputfile)) != EOF){
            *(pagereturn+n) = c;
            n++;
        }
        flag = 1;
        fclose (inputfile);
    }
    return flag;
}
InformationsquelleAutor Geesh_SO | 2013-02-06