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

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

时间: 2024-10-13 12:24:47

升级tinyhttpd-0.1.0,让其支持网页显示图像的相关文章

OkHttpUtils-2.0.0 升级后改名 OkGo,全新完美支持 RxJava,比 Retrofit 更简单易用。

okhttp-OkGo 项目地址:jeasonlzy/okhttp-OkGo 简介:OkHttpUtils-2.0.0 升级后改名 OkGo,全新完美支持 RxJava,比 Retrofit 更简单易用.该库是封装了 okhttp 的网络框架,支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,可以自定义返回对象,支持 Https 和自签名证书,支持 cookie 的持久化和自动管理,支持四种缓存模式缓存网络数据,支持 301 和 302 重定向,扩展了

升级PowerShell至4.0版本

为了更好的使用Cmder v1.2,不得不升级PowerShell为4.0. 不知道Cmder的,可以点击这里:https://github.com/cmderdev/cmder 和 逆天神器 cmder. Powershell是运行在Windows机器上实现系统和应用程序管理自动化的命令行脚本环境. 需要.NET环境的支持, 同时支持.NET对象.当前PowerShell有5个版本,分别为1.0.2.0.3.0.4.0.5.0 如果系统是Windows 7或者Windows Server 20

精彩分享 ------ 将"女朋友7.0"升级到"老婆1.0"的Bug

亲爱的技术部: 我急需您的帮助.我最近将"女朋友7.0"升级到"妻子1.0",发现这个新程序意外地启动了孩子生产程序,而且占用了大量的空间和珍贵的资源.这在产品的 使用手册中没有提到.         此外"妻子1.0"自动将自己安装到其他的所有的程序中,它随系统同时启动,监控整个系统的状态."男人夜店2.5"和"迪吧5.3"无法再运行,一旦运行该程 序系统即行崩溃.试图运行"通宵麻将6.3&qu

CentOS6.5升级内核到4.0.0

4月12日,Linux内核4.0正式发布 主要更新内容如下:新增“实时内核补丁”.无需重启,实时修补内核.该特性由 Red Hat的Kpatch 和 SUSE 的 kGraft 合并形成.改进硬件支持.新增对Intel Quark SoC 以及更多 ARM设备的支持,改进对IBM z13的支持. 为(xian)了(de)尝(dan)鲜(teng),将CentOS6.5升级内核到4.0.0. 1. 准备工作 确认内核及版本信息 [[email protected] send]# uname -r2

摩托罗拉手机可能很快升级到 Android 5.0

我们知道摩托罗拉正在努力工作,让旗下智能手机得以很快 地升级到Android 5.0棒棒糖.现在看起来,升级时间要比预料得要早.几天前摩托罗拉内部泄露了Android 5.0棒棒糖的一个测试版本,仅供摩托罗拉智能手机Saker用户进行测试.因此,外界认为摩托罗拉将在数周之内通过OTA方式,为旗下多款智能手机升级 Android 5.0棒棒糖.更多关于Android系统应用开发的最新资讯推荐关注e良师益友. 摩托罗拉昨晚意外将Android 5.0棒棒糖支持页面放到官网,但是很快就被撤下.从这份支

ubuntu 13.04 编译 安装 升级 gcc 4.9.0 address sanitizer

@前记: 最近查一个线上项目的crash,review代码无果,crash几率低,不可在本地环境重现.之后在线上好几个服务器跑valgrind就不crash了.个人猜测可能是跑valgrind后性能下降的比较严重,导致crash那个点触发不到了. gcc从4.8开始支持address sanitizer,也比较好用,文章最后会简单分析下用法. 另我的环境是ubuntu13.04+gcc4.7.3,目标是升级到4.9.0. @编译gcc4.9.0 $cd /tmp $wget ftp://mirr

CentOS 6下gcc升级的操作记录(由默认的4.4.7升级到6.4.0版本)

机房一台centos6.9机器部署了jenkins发布系统,开发人员在用node编译js,发现依赖的gcc版本低了,故需要将gcc升级到高版本(至少5.0版本以上),这里选择升级到6.4.0版本,下面是升级的操作记录: 1)查看系统版本 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.9 (Final) 2)查看默认的gcc版本 [[email protected] ~]# gcc --version gcc (GC

oracle--10.2.0.3升级到11.2.0.4

一,环境 01,待升级的系统 升级仅支持10.2.0.2版本之后的系统,如果不是,请把10G升级至高版本! 本次实验环境10.2.0.3 02,挂载11G系统 03,升级须知 1) 做好备份 二,DBUA升级 升级步骤: 在数据库服务器上关闭10.2.0.3数据库监听与数据库 创建oracle 11.2.0.3数据库相关环境变量与目录 在数据库服务器上安装oracle11.2.0.3数据库软件 在orale11.2.0.3环境变量下执行DBUA升级 修改compatible属性 01,在数据库服

[转帖]银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP

银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP https://news.cnblogs.com/n/652299/将手机操作系统 转移到 桌面 跟chromebook 类似的策略吧 近些年,国产芯片不断迅猛发展,CPU 处理器有龙芯.飞腾等竞技,而有了硬件,更要有系统和软件生态,这方面的进展也值得肯定. Kydroid 是麒麟团队和技德系统为“银河麒麟操作系统”打造的一款完全原生.高兼容性的安卓运行环境,2018 年 6 月发布 1.0 正式版,现在全新的 kydroid 2.