升级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);
}

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

posted @ 2016-05-18 18:47  DChipNau  阅读(886)  评论(0编辑  收藏  举报