一个用于快速开发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 example
cd 某个示例的目录
若在运行时出现如下错误: 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(); }