c编写的服务器显示bmp图像时出现问题

| 首先,如果有人要编译服务器并运行它 转到http://pastebin.com/qPnE3jV0 编译并运行它 转到浏览器并输入http:// localhost:7191 / 我特别关注的功能是:
void serveHTML (int socket) {

    char *message;
    int i;
    int j;

    //image data
    char bmpheader[54] = {0x42, 0x4D, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x13, 0x0B, 0x00, 0x00, 0x13, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

    char bmpimagedata[36] = {0x07, 0x07, 0xFF, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0x07, 0x07, 0x66, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFF, 0xFF, 0xFF, 0x46, 0x00, 0x00};

   message = \"HTTP/1.0 200 OK\\r\\n\"
                \"Content-Type: image/bmp\\r\\n\"
                \"Content-Length: 90\\r\\n\";
   printf (\"%s\\n\", message);
   write (socket, message, strlen(message));

   // now send the contents of the web page to be displayed
i=0;
j=0;
while (i < 54) {
    printf(\"%c\", bmpheader[i]);
    write (socket, &bmpheader[i], 1);
    i++;
}
while (j < 36) {
    printf(\"%c\", bmpimagedata[j]);
    write (socket, &bmpimagedata[j], 1);
    j++;
}


}
我在这里所做的是存储十六进制的 3x3 bmp文件的数据分成两个 数组(为方便起见, 修改)标题和 图像数据。我试图去 在网络浏览器上投放此bmp。 但是它失败了。 我已经将printf \ 打印服务器是什么的地方 吐出来...但是我想我 缺少一些东西(可能是 页脚?)。 任何帮助将不胜感激,我正在拉扯我的头发,为什么它不起作用。     
已邀请:
标头必须以两个
\\r\\n
结尾-将
\\r\\n
追加到
message
常数。     
几点: 不要使用这种奇怪的代码来写出数组。只需对数据使用普通的
write(socket, bmpheader, sizeof bmpheader);
。 检查ѭ5的返回值;它可能会失败。     

要回复问题请先登录注册