HTTP-сервер C ++ не может показать изображение HTML - PullRequest
0 голосов
/ 12 октября 2019

Это index.html:

image

Но когда я запрашиваю с моего HTTP-сервера, это выглядит так:

image

Вот мой код:

void SendMsg(SOCKET sock, char *rcType, char *fName) {
    char protocol[] = "HTTP/1.0 200 OK\r\n";
    char serv[] = "Server:Ezserver\r\n";
    char cntSize[] = "Content-length:40960\r\n";
    char cntType[SBUFSIZE];
    char buf[BUFSIZE];
    FILE* opFile;
    char fileName[SBUFSIZE] = ".\\wwwroot\\";
    strcat(fileName, fName);
    sprintf(cntType, "Content-type:%s\r\n\r\n", rcType);

    opFile = fopen(fileName, "rb");

    if(opFile == NULL) {
        SendError(sock);
        return;
    }
    send(sock, protocol, strlen(protocol), 0);
    send(sock, serv, strlen(serv), 0);
    send(sock, cntSize, strlen(cntSize), 0);
    send(sock, cntType, strlen(cntType), 0);

    while(fgets(buf, BUFSIZE, opFile) != NULL) {
        send(sock, buf, strlen(buf), 0);
    }
    fclose(opFile);
    closesocket(sock);
}

char* GetType(char *fName) {
    char exts[SBUFSIZE];
    char name[SBUFSIZE];
    strcpy(name, fName);
    strtok(name, ".");
    strcpy(exts, strtok(NULL, "."));
    if(!strcmp(exts, "html") || !strcmp(exts, "htm")) {
        return (char *)"text/html";
    } else {
        return (char *)"text/plain";
    }
}

ФАЙЛ HTML:

<html>

<head>
<title>ABC</title>
</head>

<body>
<p>body ABC </p>
<p>title ABC </p>
</body>

<img src="index.jpg"  alt="abc" />
</html>

Я очень озадачен проблемой,Я буду вам очень благодарен, если вы поможете мне решить эту проблему:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...