ahttpd异步http框架(c++/boost)

联合创作 · 2023-09-29 12:43

一个用于快速开发http服务端的异步框架,该框架基于C++/asio实现,支持http(http1.1目前考虑了keep-alive, chunked等特性,若有欠缺欢迎补充)和https,该框架适用于与app或客户端通讯的服务端,不适用于做前端(若由此需求建议考虑cppcms与wt等项目)


依赖



  • boost.asio


  • C++1y


  • openssl(https需要)



 


编译-安装



  • cd shttpd


  • mkdir build


  • cd build


  • cmake ..


  • make


  • sudo make install



 


编译示例



  • cd shttpd


  • cd example


  • cd 某个示例的目录


  • make



注意:


若在运行时出现如下错误:
error while loading shared libraries: libshttpd.so: cannot open shared object file: No such file or directory
请确保libshttpd.so所在目录在ld的搜索路径中,对于linux系统, libshttpd.so所在的目录一般为/usr/local/lib
若发现改目录不在ld的搜索路径中,以下步骤可让libshttpd.so被ld找到:



  • 修改/etc/ld.so.conf, 加入一行/usr/local/lib


  • 执行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端口监听 */
    server.addHandler("/", new TestHandler(&server));
    server.run();
}
浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报