LLxz_0609 2023-01-05 22:37 采纳率: 40%
浏览 70
已结题

关于libevent搭建httpserver 的问题

Http server 中有个函数evhttp_set_timeout 设置超时时间,什么情况会触发这个超时时间,如果触发了,会回调哪个函数,我怎么设置这个超时回调

  • 写回答

5条回答 默认 最新

  • 感谢地心引力 优质创作者: 嵌入式与硬件开发技术领域 2023-01-05 22:43
    关注

    evhttp_set_timeout 函数用于设置 HTTP 请求的超时时间。在指定的超时时间内,如果请求还没有完成,就会触发超时事件。超时事件会调用回调函数。

    你可以使用 evhttp_set_gencb 函数设置回调函数。这个函数有两个参数:一个 struct evhttp_request * 类型的指针,表示请求对象,另一个是一个回调函数,它是一个指向 void (*)(struct evhttp_request *, void *) 类型的函数指针。

    你可以使用下面的代码设置回调函数:

    void timeout_cb(struct evhttp_request *req, void *arg) {
      // 超时处理代码
    }
    
    ...
    
    evhttp_set_gencb(http_server, timeout_cb, NULL);
    
    
    

    在超时时间到达时,将会调用 timeout_cb 函数。可以在这个回调函数中执行超时处理逻辑。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 1月17日
  • 已采纳回答 1月9日
  • 创建了问题 1月5日