ahttpd異步http框架(c++/boost)
一個(gè)用于快速開發(fā)http服務(wù)端的異步框架,該框架基于C++/asio實(shí)現(xiàn),支持http(http1.1目前考慮了keep-alive, chunked等特性,若有欠缺歡迎補(bǔ)充)和https,該框架適用于與app或客戶端通訊的服務(wù)端,不適用于做前端(若由此需求建議考慮cppcms與wt等項(xiàng)目)
依賴
-
boost.asio
-
C++1y
-
openssl(https需要)
編譯-安裝
-
cd shttpd
-
mkdir build
-
cd build
-
cmake ..
-
make
-
sudo make install
編譯示例
-
cd shttpd
-
cd example
-
cd 某個(gè)示例的目錄
-
make
注意:
若在運(yùn)行時(shí)出現(xiàn)如下錯(cuò)誤:
error while loading shared libraries: libshttpd.so: cannot open shared object file: No such file or directory
請(qǐng)確保libshttpd.so所在目錄在ld的搜索路徑中,對(duì)于linux系統(tǒng), libshttpd.so所在的目錄一般為/usr/local/lib
若發(fā)現(xiàn)改目錄不在ld的搜索路徑中,以下步驟可讓libshttpd.so被ld找到:
-
修改/etc/ld.so.conf, 加入一行/usr/local/lib
-
執(zhí)行sudo ldconfig更新配置
示例代碼:
#include "server.hh"
struct TestHandler : public RequestHandler {
using RequestHandler::RequestHandler;
void handleRequest(RequestPtr req, ResponsePtr rep) override {
rep->out() << "hello world!" << std::endl;
}
};
int
main(int argc, char *argv[])
{
Server server("8888"); /**< 在8888端口監(jiān)聽 */
server.addHandler("/", new TestHandler(&server));
server.run();
}評(píng)論
圖片
表情
