libevent是一个轻量级的基于事件驱动的开源高性能网络库。
一.libevent http
1.创建event_base和evhttp
struct event_base *event_init(void)
struct evhttp *evhttp_new(struct event_base *base)
2.绑定地址和端口
int evhttp_bind_socket(struct evhttp http, const char address, ev_uint16_t port)
3.设置处理函数
void evhttp_set_gencb(struct evhttp *http, void (*cb)(struct evhttp_request *, void *), void *arg)
4.派发事件循环
int event_base_dispatch(struct event_base *)
struct evbuffer *buf = evbuffer_new()
http path
const char *evhttp_uri_get_path(const struct evhttp_uri *uri)
const char *evhttp_uri_get_query(const struct evhttp_uri *uri)
int evhttp_parse_query_str(const char *uri, struct evkeyvalq *headers)
const char *evhttp_find_header(const struct evkeyvalq *headers,
const char *key)
int evhttp_add_header(struct evkeyvalq *headers, const char *key, const char *value)
int evbuffer_add_printf(struct evbuffer *buf, const char *fmt, …)
void evhttp_send_reply(struct evhttp_request *req, int code, const char *reason, struct evbuffer *databuf)
void evhttp_clear_headers(struct evkeyvalq *headers)
void evbuffer_free(struct evbuffer *buf)