升级tinyhttpd-0.1.0,让其支持网页显示图像

Posted DChipNau

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了升级tinyhttpd-0.1.0,让其支持网页显示图像相关的知识,希望对你有一定的参考价值。

tinyhttpd是学习http协议非常好的工具,但是由于其过于简单,不支持在网页上显示图片,所以我改了一些代码,让tinyhttpd可以现实图像,供新手一起学习和熟悉http协议,ubuntu14.04下直接make就可以,已经测试通过.

代码: download.csdn.net/detail/qiankun1993/9524289

 

主要增加两个函数,第一个是图像封装头的函数,传输图片时要将html的头中的Content-Type设置为image/png:

void headers2(int client, const char *filename)
{
 char buf[1024];
 (void)filename;  /* could use filename to determine file type */

 strcpy(buf, "HTTP/1.0 200 OK\r\n");
 send(client, buf, strlen(buf), 0);
 strcpy(buf, SERVER_STRING);
 send(client, buf, strlen(buf), 0);
 sprintf(buf, "Content-Type: image/png\r\n");
 send(client, buf, strlen(buf), 0);
 strcpy(buf, "\r\n");
 send(client, buf, strlen(buf), 0);
}

第二个是读取本地图片文件的函数,使用下面的cat2()来读取图像文件的数据:

void cat2(int client, FILE *resource)
{
 char buf[1024];
 char c;
 while ((fscanf(resource,"%c",&c))!=EOF)
 {
  send(client, &c, 1, 0);
  printf("%c",c);
 }
 printf("%c",c);
}

然后就可以在网页上显示图像了,这个仅供新手学习,大牛们不要鄙视我.

以上是关于升级tinyhttpd-0.1.0,让其支持网页显示图像的主要内容,如果未能解决你的问题,请参考以下文章

服务器升级,网页样式加载失败

Python爬虫之路——简单网页抓图升级版(添加多线程支持)

最新版勤哲Excel服务器V2016.12.0.292无限用户支持手机APP,微信,网页等功能不绑定电脑,任意安装,支持后续升级

升级 | Fastjson 1.2.68 发布,支持 GEOJSON

cent os 支持中文

Android 使用Room操作数据库进行数据库版本的升级和迁移