今天由于要查询 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 的 half-sync/half-async web 服务器框架
libevent 自带的 http 封装是完全基于 event-driven 的,如果在处理 http 请求的时候,要调用 blocking system call 的话,会导致整个 server 阻塞。
SPWebServer 也是基于 libevent 的 http 封装,但是使用了 half-sync/half-async 模式。SPWebServer 的介绍:http://iunknown.javaeye.com/blog/78561
多谢指正
多谢指正