使用libuv的http模块,做一个简单的本地http服务程序,直接贴上代码:
class WebRouter {
public:
WebRouter () {
}
void serve(request& req, response& res) {
if (req.url().path() == "/") {
res.set_status(200);
res.set_header("Content-Type", "text/plain");
res.end("index!");
}
private:
};
bool bListen = false;
for (int port = 500; port <= 510; port++)
{
http server;
WebRouter webRouter;
bListen = server.listen("127.0.0.1", port, std::bind(&WebRouter::serve, &webRouter, std::placeholders::_1, std::placeholders::_2));
if (bListen)
{
native::run();
break;
}
}
需要注意的是如果开启两个或多个http服务,最好不要监听在同一个端口上,不然程序会出现问题。也不要像下面这样,如果第一个端口(500)被占用,监听会永远失败。
bool bListen = false;
http server;
WebRouter webRouter;
for (int port = 500; port <= 510; port++)
{
bListen = server.listen("127.0.0.1", port, std::bind(&WebRouter::serve, &webRouter, std::placeholders::_1, std::placeholders::_2));
if (bListen)
{
native::run();
break;
}
}