libevent简介

曾经终败给现在 2022-06-16 21:19 315阅读 0赞

Libevent组件介绍

evutil

跨平台的网络编程函数功能的接口实现。

event and event_base

libevent后台实现的核心部分,它针对了各个平台,提供了基于事件的非阻塞I/O
这里的事件包括:读写事件、定时器事件、系统信号。

bufferevent

IO的缓冲机制,用户无需自己维护buffer

evbuffer

在bufferevent基础上实现的缓冲

evhttp

简单的http客户和服务端的实现

evdns

简单的dns客户和服务端的实现

evrpc

简单的rpc的实现

Libevent库和头文件

在libevent的安装目录下有lib和include,在写代码时如果用到头文件和库只需要在Makefile里面添加相关选项即可:

  1. PROGS=echo \
  2. epoll \
  3. block_http_client
  4. CLEANFILES = core core.* *.core *.o temp.* *.out typescript* \
  5. *.lc *.lh *.bsdi *.sparc *.uw
  6. LIBEVENT_DIRECTORY = /home/zhangxiao/libevent/src/src2
  7. LIBEVENT_INCLUDE = $(LIBEVENT_DIRECTORY)/include
  8. LIBEVENT_LIBRARY = $(LIBEVENT_DIRECTORY)/lib
  9. SRC=${shell pwd}/src
  10. OUTPUT:=${shell pwd}/bin
  11. MAKE_BIN_DIR := ${shell mkdir -p $(OUTPUT) }
  12. all : ${PROGS}
  13. CFLAGS+=-g -I${LIBEVENT_INCLUDE}
  14. LDFLAGS+=-L${LIBEVENT_LIBRARY} -levent -lpthread -lrt
  15. echo:${SRC}/echo.o
  16. @${CC} ${CFLAGS} -o ${OUTPUT}/$@ $^ ${LDFLAGS}
  17. epoll:${SRC}/epoll.o
  18. @${CC} ${CFLAGS} -o ${OUTPUT}/$@ $^ ${LDFLAGS}
  19. block_http_client:${SRC}/block_http_client.o
  20. @${CC} ${CFLAGS} -o ${OUTPUT}/$@ $^ ${LDFLAGS}
  21. clean:
  22. @rm -rf ${OUTPUT} \
  23. @rm -rf ${SRC}/*.o
  24. .PHONY: all clean

参考

Programming with Libevent

发表评论

表情:
评论列表 (有 0 条评论,315人围观)

还没有评论,来说两句吧...

相关阅读

    相关 libevent

    简介: Libevent 是一个用[C语言][C][编写][Link 1]的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能