libevent 写了一个简单地web服务器

<span style="font-size:18px;">void DateDeal
{
    



}

void httpd_handler(struct evhttp_request *req, void *arg) 
{

     const char *uri;
     uri = evhttp_request_uri(req);

     char *post_data = (char *) EVBUFFER_DATA(req->input_buffer);
        
      string result=DataDeal(uri,post_data);  //url 和数据的处理函数
        
     cout<<"result==="<<result.c_str()<<endl;
     //HTTP header
     evhttp_add_header(req->output_headers, "Server", MYHTTPD_SIGNATURE);
     evhttp_add_header(req->output_headers, "Content-Type", "text/plain; charset=UTF-8");
     evhttp_add_header(req->output_headers, "Connection", "close");
 
     struct evbuffer *buf;
     buf = evbuffer_new();
     evbuffer_add_printf(buf, "%s\n",result.c_str());
     evhttp_send_reply(req, HTTP_OK, "OK", buf);

     evbuffer_free(buf);

}

int main()
{ 

    event_init();

    //http server
    struct evhttp *httpd;
    httpd = evhttp_start(g_JsServerIp, g_JsServerPt);
    printf("ip===%s\nport=%d\n",g_JsServerIp,g_JsServerPt);
    printf("success\n");
    
    //generic callback

    int httpd_option_timeout = 120;
    evhttp_set_timeout(httpd, httpd_option_timeout);

    evhttp_set_gencb(httpd, httpd_handler, NULL);//处理post请求的http内容

    //callback


    

    event_dispatch();

    evhttp_free(httpd);

}







</span>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值