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); }
然后就可以在网页上显示图像了,这个仅供新手学习,大牛们不要鄙视我.
时间: 2024-10-13 12:24:47