前言
本系列将带领大家看一些C语言的优秀的开源项目,并逐步深入讲解源码,感兴趣的可以点击关注、收藏,有问题及时在评论区评论~
Tinyhttpd 介绍
Tinyhttpd 是一个非常轻量级的 web server,总共只有500多行代码,非常适合作为初学Linux C网络编程的参考开源代码。
Tinyhttpd 下载、安装
Windows 下载
从Tinyhttpd官网进去后,点击最后一行的project page,在新页面点击 Download 进行下载。
下载成功后,将压缩包解压,解压成功后可以看到如下的源码目录
Linux下载、解压
从Tinyhttpd官网进去后,点击最后一行的project page,在新页面点击 Download 进行下载。
命令行执行
tar -zxvf tinyhttpd-0.1.0.tar.gz(这个是下载的压缩包名)
然后在执行目录下就可以看到一个 tinyhttpd-0.1.0
的目录
项目编译 & 使用
项目编译
编译需要在 Linux 环境下进行,直接make
即可,报如下错
一顿百度后,发现 httpd.c 里有官方注释:
按照官方提示的,注释掉如下内容
#include <pthread.h>
pthread_create() 的调用
newthread 变量的定义
并将 accept_request
的调用解注释
最后在 Makefile
中删除掉 -lsocket
的编译选项
再次执行 make
,编译成功
项目使用
运行可执行文件 httpd
./httpd
此时一个本地 web服务器就运行起来了,端口58197,这个时候我们用 curl
工具访问该服务器:
gyy@raspberrypi:~ $ curl localhost:58197
<HTML>
<TITLE>Index</TITLE>
<BODY>
<P>Welcome to J. David's webserver.
<H1>CGI demo
<FORM ACTION="color.cgi" METHOD="POST">
Enter a color: <INPUT TYPE="text" NAME="color">
<INPUT TYPE="submit">
</FORM>
</BODY>
</HTML>
得到服务器返回的信息:正文内容是Welcome to J. David's webserver.
有桌面环境的话也可以直接在浏览器输入 127.0.0.1:58197
访问.(如果是远程连接的话要使用 ip:58197
进行访问,前提是要打开服务器的58197
端口)