簡單的Http Server
使用Libevent内置的http相關接口,可以很容易的建構一個Http Server,一個簡單的Http Server如下:


通過Libevent的接口建構一個Http Server的過程如下:
(1)初始化:在event_base上建立一個evhttp,将這個evhttp綁定到監聽的IP和端口号。
(2)設定Http回調函數:使用evhttp_set_gencb設定Http Server的處理請求的回調函數。
(3)啟動Http Server:等待請求進入事件循環。
在Http Server中使用定時器提供更新服務


在這個Http Server中提供了一個每5秒觸發一次的定時器,讀取一個檔案,如果這個檔案被更新過,則讀取更新後的内容。
當通路這個Http Server時,提供這個檔案中最新的内容。
多線程的Http Server
在上面的Http Server中,處理Http請求的回調函數generic_handler和定時器讀取檔案的回調函數read_file_timer_cb都在同一個event_base的dispatch中,并且都在同一個程序中,使用多線程可以改善程式的性能,下面是一個來自網絡的多線程Http Server:


上面的代碼基于Libevent 1.X版本的,不過很容易很看懂:在一個監聽socket上建立了多個event_base執行個體和evhttp執行個體,在不同的線程中排程不同的event_base,繼而可以在不同的線程中處理http請求。
本文轉自阿凡盧部落格園部落格,原文連結:http://www.cnblogs.com/luxiaoxun/p/3704573.html,如需轉載請自行聯系原作者