Hui’s Thinkpad Header Image

Entries from 二月 2008

FleaHttpd 超快的Web服务器

我用C和socket从零开始写了一个Web服务器,实现了静态文件服务功能和最基本的CGI服务。我给这个程序命名为FleaHttpd,因为它像跳蚤一样小,目前代码只有不到500行,放在了Google Code上:
http://code.google.com/p/fleahttpd/
下载地址在这里:
http://fleahttpd.googlecode.com/svn/trunk/
跳蚤虽小,五脏俱全 FleaHttpd能响应浏览器的GET/POST请求。用apache的ab测试表明,在concurrency为1的情况下静态文件的访问速度可以达到Apache的三倍,测试结果在这个页面:
http://code.google.com/p/fleahttpd/wiki/BenchmarkResults
对同样一个37103字节的文件访问10000次,FleaHttpd可以在1.6秒完成万次请求:
Requests per second: 6224.93 [#/sec] (mean)
Time per request: 0.161 [ms] (mean)
Time per request: 0.161 [ms] (mean, across all concurrent requests)
Transfer rate: 225817.40 [Kbytes/sec] received
Apache完成万次请求则需要5秒:
Requests per second: […]

Categories: 程序

网络摄像头

最近老爸老妈装了宽带,要和我视频聊天。对我来说视频聊天已经是n年前的事情了,我翻箱倒柜终于找出一个摄像头,还是从国内带来的远见(foresight)摄像头。可惜网上找不到Windows下驱动,视频聊天也就作罢。
于是想试试能不能在Linux下搞定,lsusb了一下:
$ lsusb
Bus 001 Device 005: ID 0ac8:301b Z-Star Microelectronics Corp. ZC0301 WebCam

在google上搜索设备号 0ac8:301b,发现有一个法国人写了这个型号的驱动:
http://mxhaard.free.fr/spca5xx.html
下载下来之后按照说明编译为内核模块,然后用他写的另一个软件spcaview测试发现一切显示正常。
另外注意到spcaview中还有一个很handy的工具spcacat可以每隔几秒钟从摄像头抓取一个.jpg图片,于是我就写了一个python脚本自动把图片张贴在网上。我做好的网址在这里
http://toys.huichen.org/webcam
这个网页每隔大约10秒自动更新一次,显示即时的摄像头画面。
原理是这样的:
抓取摄像头图片的服务器(A)和web服务器(B)是分开的,首先A机器上的spcacat每10秒从摄像头抓取一张图片,然后B机器的python脚本每隔10秒钟从A机器上远程下载图片,给图片添加时间戳然后生成动态网页。
我写的python脚本:
http://webcam-python.googlecode.com/svn/trunk/webcam.py
另外值得一提的是spcaview中还附带了spcaserv工具可以在A机器上建立视频流服务器,然后在远程机器上用spcaview登录A机器即可进行实时监视,我测试在640×480的分辨率下视频相当流畅。
阅读(1955 次)Share This

Categories: 硬件 · 程序

Close
E-mail It