`

libevent简单的http实现

gcc 
阅读更多
1 #include <sys/types.h>

  2 #include <sys/time.h>

  3 #include <sys/queue.h>

  4 #include <stdlib.h>

  5 #include <err.h>

  6 #include <event.h>

  7 #include <evhttp.h>

  8

  9 void generic_handler(struct evhttp_request *req, void *arg)

10 {

11     struct evbuffer *buf;

12     buf = evbuffer_new();

13

14     if (buf == NULL)

15         err(1, "failed to create response buffer");

16

17     evbuffer_add_printf(buf, "Requested: %s", evhttp_request_uri(req));

18     evhttp_send_reply(req, HTTP_OK, "OK", buf);

19

20     evbuffer_free(buf);

21 }

22

23 int main(int argc, char **argv)

24 {

25     struct evhttp *httpd;

26     event_init();

27     httpd = evhttp_start("0.0.0.0", 8080);

28

29     /* Set a callback for requests to "/specific". */

30     /* evhttp_set_cb(httpd, "/specific", another_handler, NULL); */

31

32     /* Set a callback for all other requests. */

33     evhttp_set_gencb(httpd, generic_handler, NULL);

34

35     event_dispatch();

36

37     /* Not reached in this code as it is now. */

38     evhttp_free(httpd);

39     return 0;

40 }





gcc s_http.c -levent

分享到:
评论

相关推荐

    libevent实现http服务器实现文件下载功能

    在本案例中,我们将探讨如何使用libevent在VS2019环境下,结合Qt5.15.2,搭建一个简单的HTTP服务器,实现在本地目录中的文件下载服务。 首先,我们得了解libevent的核心概念。libevent提供了一个事件基础架构,用于...

    【最新】C++ 使用libEvent实现http的post, get功能

    本篇将深入探讨如何利用libEvent库在C++中实现HTTP的POST和GET请求。 首先,理解HTTP的基本概念至关重要。HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于客户端和服务器之间的通信。GET和POST是...

    libevent 多线程 HTTP post服务器

    描述中提到的“libevent 多线程 HTTP post服务器”表明这是一个利用libevent库开发的服务端程序,该程序能够接收并处理来自客户端的HTTP POST请求,并且采用了多线程技术以实现并发处理,提升系统性能。这通常意味着...

    libevent web服务器实现

    这是一个使用libevent实现的web服务器,客户端采用CInternetSession来实现的,是一个完整的可用的例子,项目采用cmake来管理。提供给大家参考,有问题可以邮件给buptxu@qq.com,多谢。

    libevent和http服务端

    从提供的压缩包文件名称列表中,我们可以推断这是一个基于libevent实现的HTTP服务端项目。其中: - `WIN32-Code`可能包含了针对Windows平台的源代码。 - `Debug`是调试版本的输出目录,通常包含编译后的可执行文件...

    使用libevent搭建http服务器C++源码 vs项目工程

    在本文中,我们将深入探讨如何使用libevent库在C++环境下构建一个HTTP服务器,并在Visual Studio(VS)项目工程中实现这一目标。libevent是一个事件通知库,它可以帮助开发者高效地处理网络事件,如TCP连接、UDP...

    linux下使用libevent实现断网重连的tcp客户端

    linux下使用libevent实现断网重连的tcp客户端,自动检测tcp连接断开,断开后能自动重连;如果连不上服务器,则一直尝试连接服务器,直至连接成功。

    VS2003使用libevent库实现的httpd范例工程

    "VS2003使用libevent库实现的httpd范例工程" 指的是一个使用Visual Studio 2003(VS2003)开发的项目,该项目集成并应用了libevent库来构建一个简单的HTTP服务器。libevent是一个开源的事件通知库,它允许程序员在多...

    evhttp-http-proxy:通过 libevent 实现的 HTTP 代理

    evhttp-http-proxy 通过 libevent 实现的 HTTP 代理请注意,需要 libevent-streaming,即 libevent 的扩展。 您可以忽略“pcmm”相关代码。

    libevent服务器和客户端

    在这个项目中,我们实现了一个基于libevent的简单服务器和客户端,它们能够互相发送数据,这对于理解libevent的工作原理及其在网络编程中的应用至关重要。 ### 1. libevent简介 libevent的核心功能是提供一个抽象...

    libevent中文参考手册

    7. **evrpc**:一个简易的远程过程调用(RPC)框架,简化了远程服务调用的实现过程。 #### 三、库安装与使用 **libevent**在默认情况下安装了几个关键的库: 1. **libevent_core**:包含了所有基础的核心功能,如...

    libevent 中文文档.doc

    5. evhttp: 是一个简单的HTTP客户端/服务器实现,使开发HTTP服务变得更加容易。 6. evdns: 为DNS查询提供简单的客户端/服务器实现,简化了网络应用中的域名解析。 7. evrpc: 提供了简单的RPC(远程过程调用)实现...

    cpp-多线程epolllibevent网络库分别实现的三个网络HTTP服务器程序

    5. **项目结构**:“MulticsHTTP-master”这个项目名称可能表明了源代码的组织结构,其中可能包含了三个不同的子目录或文件,分别对应了多线程、epoll和libevent实现的HTTP服务器程序。每个实现可能包括了网络连接的...

    Libevent源码和资料合集

    2. **阅读源码**:通过阅读源码,可以深入理解Libevent如何实现事件调度和事件处理,这对于优化和定制Libevent非常有帮助。 3. **编写示例程序**:实践是最好的老师,通过编写简单的客户端和服务器程序,可以更好地...

    libeventBook(Programming with Libevent.)

    4. HTTP服务器:Libevent包含了一个简单的HTTP服务器框架,方便开发者构建自己的HTTP服务。 三、Libevent的API使用 1. event_new():创建一个新的事件,需要指定事件类型(读、写、信号等)、文件描述符、回调函数...

    libevent源码深度剖析

    6. **HTTP服务器**:libevent自带了一个简单的HTTP服务器模块,可以用来快速搭建轻量级的HTTP服务,便于开发和测试。 7. **协议支持**:libevent不仅限于TCP和UDP,还支持其他协议如DNS、HTTP等,通过libevent,...

    libevent 参考手册中文版及源码解析

    6. **源码解析**:深入阅读libevent的源码,可以理解其内部实现细节,如事件调度算法、多线程支持和异步I/O处理等。 7. **性能优化**:libevent提供了很多配置选项来优化性能,例如选择合适的事件模型、使用多线程...

    libevent源码

    通过深入理解和使用libevent源码,开发者可以更好地定制自己的网络应用,实现高效、稳定的服务。 总结,libevent是一个强大的工具,它提供了事件驱动的编程模型,适用于处理大量并发连接。通过理解并熟练运用...

    libevent-2.1.4-alpha.tar

    例如,一个简单的HTTP服务器可以使用libevent监听TCP连接,接收请求,然后调用相应的处理函数。 总结,libevent-2.1.4-alpha是libevent库的一个重要版本,它提供了强大的事件驱动机制和跨平台支持。通过理解和掌握...

    libevent最新静态库

    1. **HTTP/HTTPS服务器**:利用libevent构建HTTP/HTTPS服务器,可以高效地处理客户端的请求。它能监听多个套接字,当有新的连接到来时,libevent会自动分配事件处理回调,将连接处理任务分发到适当的线程或工作队列...

Global site tag (gtag.js) - Google Analytics