gpt4 book ai didi

c - c 编写的服务器显示 bmp 图像的问题

转载 作者:行者123 更新时间:2023-11-30 18:06:20 25 4
gpt4 key购买 nike

首先,如果有人想编译服务器并运行它

  1. 转到http://pastebin.com/qPnE3jV0
  2. 编译并运行
  3. 转到浏览器并输入 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 放在了整个打印服务器是什么的地方吐出来……但我想我是缺少一些东西(可能是页脚?)。

任何帮助将不胜感激,我正在为为什么它不起作用而烦恼。

最佳答案

header 需要以两个结尾 \r\n - 将 \r\n 附加到您的消息常数。

关于c - c 编写的服务器显示 bmp 图像的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5663802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com