網上有很多基於線程的web服務器的例子,但我還沒有真正看到任何能夠給出基於事件循環的好例子(不是很複雜,例如lighttp和nginx)的東西。在C中是否有任何簡單/示例事件驅動的Web服務器?
有沒有?如果沒有,我應該閱讀/查看哪些內容來幫助我學習如何製作這種服務器? (這包括C語言中的異步IO)
我已經理解了基於事件循環的編程如何工作的基礎知識,特別是在像Python這樣的高級語言中,但我需要能夠在C中實現一個基礎知識。
網上有很多基於線程的web服務器的例子,但我還沒有真正看到任何能夠給出基於事件循環的好例子(不是很複雜,例如lighttp和nginx)的東西。在C中是否有任何簡單/示例事件驅動的Web服務器?
有沒有?如果沒有,我應該閱讀/查看哪些內容來幫助我學習如何製作這種服務器? (這包括C語言中的異步IO)
我已經理解了基於事件循環的編程如何工作的基礎知識,特別是在像Python這樣的高級語言中,但我需要能夠在C中實現一個基礎知識。
Here is one這是TupleServer源使用libevent的一部分。
不知道你的服務器需要多麼全功能,但here's一個基於C的小型Web服務器,可以作爲一個起點。它爲每個連接分配一個子進程,因此很容易理解,但不是最有效的。
分叉不是基於事件循環的,但是謝謝:) – 2011-06-11 19:55:08
簡而言之,簡單:libevent.org和example:http://www.wangafu.net/~nickm/libevent-book/。 只要你把自己的手放在了libevent中,它就是使用http工作的API,evhttp不是很強大,在https://github.com/ellzey/libevhtp有一個替代方案。當然,libmicrohttpd工作得很好。
看看thttpd,也是在GNU libmicrohttpd – 2011-06-11 18:07:26