如何解决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,0x36,0x28,0x03,0x01,0x18,0x24,0x13,0x0B,0x00};
char bmpimagedata[36] = {0x07,0x07,0xFF,0x66,0x46,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的返回值;它可能会失败。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。