ZYhttpd -- 简单web服务器
该项目就是一个自我学习的项目,一直在学编程,却一直没有做出过什么像样的东西,所以准备开始这个项目,没打算做的多么完善、多么快速吧,只想按照我自己对web服务器运行原理的理解来一步一步实现它,在这个过程中也巩固一下自己所学的知识。
效果图
版本
V1.0.1:
这个版本是在windows下实现的,当时就是晚上没事干,就随便捣鼓捣鼓,功能仅仅实现了通过浏览器访问:
127.0.0.1:81
,然后会显示一个Hello ZYhttpd!字样的页面。
V1.0.2:
功能上比1.0.1改进的就是,返回给用户的页面是从文件中读取的,而1.0.1是写在代码中的。 下一个版本将会转移到
linux
下开发,因为要添加线程的使用了,而我对windows
下的多线程使用不太熟悉。
V1.0.3:
该版本初次在
linux
上测试通过,环境是CentOs 6.2
,其中遇到了一些问题,记得要关闭防火墙,还不知道怎么通过代码来让自己的程序可以通过防火墙呢,需要学习。 其次,在代码中实现了多线程,具体方法就是收到一个连接就开启一个线程,发送完客户端请求的数据就退出,计划下一个版本中加入线程池的使用,顺便自己也学习一下如何实现自己的线程池。
V1.0.4:
该版本增加了一个
-D
的启动参数来让zyhttpd
以守护进程的方式运行,使用Linux
提供的函数daemon
来实现。
V1.0.5:
该版本实现了网页中显示图片的功能,之前一直没有处理好网页中图片的显示,原因是
send
的时候,调用了strlen
来统计sendBuffer
中的长度,对于图片是不可行的,改为发送从文件中读取出来的数据长度即可。