升级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,让其支持网页显示图像的更多相关文章
- DPA 9.1.85 升级到DPA 10.0.352流程
SolarWinds DPA的升级其实是一件非常简单的事情,这里介绍一下从DPA 9.1.95升级到 DPA 10.0.352版本的流程.为什么要升级呢? DPA给用户发的邮件已经写的非常清楚了(如下 ...
- linux内核升级(ubuntu12.04从3.13.0升级到3.4.0 )
花了一天的时间,终于把ubuntu12.04 的linux内核版本从3.13.0升级到3.4.0 升级后,系统更加稳定.具体步骤:# wget http://www.kernel.org/pub/li ...
- 【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 Android Studio 3.0的新功能 https://mp.weixin.qq.com/s/2XmVG4mKEDX6-bvZ ...
- maven私库nexus2.11.4迁移升级到nexus3.12.0
nexus简介 nexus是一个强大的maven仓库管理器,它极大的简化了本地内部仓库的维护和外部仓库的访问. nexus是一套开箱即用的系统不需要数据库,它使用文件系统加Lucene来组织数据 .n ...
- CentOS 6下gcc升级的操作记录(由默认的4.4.7升级到6.4.0版本)
机房一台centos6.9机器部署了jenkins发布系统,开发人员在用node编译js,发现依赖的gcc版本低了,故需要将gcc升级到高版本(至少5.0版本以上),这里选择升级到6.4.0版本,下面 ...
- ubuntu 13.04 编译 安装 升级 gcc 4.9.0 address sanitizer
@ 前记: 最近查一个线上项目的crash,review代码无果,crash几率低,不可在本地环境重现.之后在线上好几个服务器跑valgrind就不crash了.个人猜测可能是跑valgrind后性能 ...
- Kafka实践、升级和新版本(0.10)特性预研
本文来自于网易云社区 一.消息总线MQ和Kafka (挡在请求的第一线) 1. 几个应用场景 case a:上游系统往下游系统推送消息,而不关心处理结果: case b:一份新数据生成,需要实时保存到 ...
- WinForms项目升级.Net Core 3.0之后,没有WinForm设计器?
目录 .NET Conf 2019 Window Forms 设计器 .NET Conf 2019 2019 9.23-9.25召开了 .NET Conf 2019 大会,大会宣布了 .Net Cor ...
- oracle--10.2.0.3升级到11.2.0.4
一,环境 01,待升级的系统 升级仅支持10.2.0.2版本之后的系统,如果不是,请把10G升级至高版本! 本次实验环境10.2.0.3 02,挂载11G系统 03,升级须知 1) 做好备份 二,DB ...
随机推荐
- <c:forEach>, <c:forTokens> 标签
这些标签封装了Java中的for,while,do-while循环. 相比而言,<c:forEach>标签是更加通用的标签,因为它迭代一个集合中的对象. <c:forTokens&g ...
- Celery 服务搭建
整个项目工程如下 __init__.py """ 注意点:python3.7 需要执行 pip install --upgrade https://github.com/ ...
- Android仿微信QQ等实现锁屏消息提醒
demo代码如下: import android.content.Intent; import android.os.Bundle; import android.support.v7.app.App ...
- SpringBoot 上下文获取注入的Bean
import org.springframework.beans.BeansException; import org.springframework.context.ApplicationConte ...
- 关于linux新建用户并赋予文件夹权限和scp权限的问题
当前用户是aaa,新建用户bbb: $adduser bbb 赋予sudo权限(即把用户bbb添加到sudo组):$usermod -a -G sudo bbb 切换到bbb:$su - bbb 假设 ...
- Spring Shell入门介绍
目录 Spring Shell是什么 入门实践 基础配置 简单示例 注解@ShellMethod 注解@ShellOption 自定义参数名称 设置参数默认值 为一个参数传递多个值 对布尔参数的特殊处 ...
- TopShelf+Quartz.net 实现window服务
Quartz.NET官网 TopShelf 网址 代码地址:https://github.com/SeaLee02/ProjectDemo/tree/master/WindowServerDemo ...
- spark 提交任务报错 Yarn application has already ended! It might have been killed or unable to launch application master
1.任务是提交在yarn上的,查看 resourceManager页面 有如下信息 Current usage: 58.4 MB of 1 GB physical memory used; 2.2 G ...
- visual studio ------- 更改字体和背景颜色
1.打开vs 点击工具 选择选项 2.想要更换主题的也可以更换主题, 3.更改字体 4.更改为护眼小背景 参数为 85 123 205 ee
- netcore 版本 切换 sdk
https://docs.microsoft.com/zh-cn/dotnet/core/tools/global-json