用 libevent 实现一个简单的 http server

今天由于要查询 memcached 的使用,转到了 libevent,发现它大概一个月前发布了 1.2 版本,一个很重要的更新就是增加了对 http 协议的封装。

于是尝试自己写一个 http server,查看 manual 无迹可循。google 之,看到一个人写的 sample,而且他还写了其它一些的 libevent 的例程。强烈推荐学习。

嘻嘻,练好 google 大法很重要哦。用 google generate 代码的能力比 Visual Studio 的 wizard 强多了。以后写程序之前首先打开浏览器 search,然后 copy & paste 到编辑器里面去.... (YY 中)

最后要说的是,感觉用 libevent 来完成一个 http application server 似乎也是相当的可行呢。至少上手比 apache module 简单多了。比如 JEP/XEP-0124 , http binding. 传统上都是在 java 上实现的,现在我看到了 C 上实现的曙光。可惜最近业余实在没有精力去写什么程序了。

Topic: 技术

评论

libevent 自带的 http 封装是完全基于 event-driven 的,如果在处理 http 请求的时候,要调用 blocking system call 的话,会导致整个 server 阻塞。

SPWebServer 也是基于 libevent 的 http 封装,但是使用了 half-sync/half-async 模式。

SPWebServer 的介绍:http://iunknown.javaeye.com/blog/78561

多谢指正