Libevhtp
来源:互联网 发布:数据产品经理面试题目 编辑:程序博客网 时间:2024/06/11 21:26
依赖包版本
Libevent 版本 > 2.0
Openssl 版本 > 0.9.8k
Cmake 版本 > 2.8 (libevhtp使用cmake编译的)
系统yum源
这几个包在系统源中的版本都低于最低依赖版本
为了避免不破坏系统原有依赖
我们将新的包都安装到 /opt/local 一般来说这个目录都是空, 与/usr/local目录相对应
创建文件目录
sudo mkdir -p /opt/local
安装Openssl
cd /opt/local
wget "http://www.openssl.org/source/openssl-1.0.1e.tar.gz"
tar xzvf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config shared --prefix=/opt/local --openssldir=/opt/local/ssl
make
sudo make install
安装Libevent2.0
cd /opt/local
wget "https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz"
tar xzvf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure --prefix=/opt/local LDFLAGS=-L/opt/local/lib CPPFLAGS=-I/opt/local/include
make
sudo make install
安装Cmake
wget "http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz"
tar xzvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap --prefix=/opt/local
make
sudo make install
安装Libevhtp
wget "https://github.com/ellzey/libevhtp/archive/1.2.4.tar.gz" -O libevhtp-1.2.4.tar.gz
tar xzvf libevhtp-1.2.4.tar.gz
cd libevhtp-1.2.4
/opt/local/bin/cmake -DCMAKE_PREFIX_PATH=/opt/local -DCMAKE_INSTALL_PREFIX=/opt/local .
make
sudo make install
使用Libevhtp
#编译命令中加上
gcc libevhtpDemo.c -I/opt/local/include -L/opt/local/lib -Wl,-rpath /opt/local/lib -levent_openssl -levent -levhtp
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <errno.h>
#include <evhtp.h>
void
testcb(evhtp_request_t * req, void * a);
void
testcb(evhtp_request_t * req, void * a) {
evbuffer_add_reference(req->buffer_out, "foobar", 6, NULL, NULL);
evhtp_send_reply(req, EVHTP_RES_OK);
}
int main (int argc, const char * argv[])
{
evbase_t *evbase = event_base_new();
evhtp_t *htp = evhtp_new(evbase, NULL);
evhtp_set_cb(htp, "/", testcb, NULL); /* 设置回调函数 */
evhtp_use_threads(htp, NULL, 4, NULL); /* 设置4个线程 */
/* 监听本地所有IP的8080端口, backlog为1024 */
evhtp_bind_socket(htp, "0.0.0.0", 8080, 1024);
/* 进入循环、监听连接,http server开始工作 */
event_base_loop(evbase, 0);
return 0;
}
- Libevhtp
- libevhtp测试
- Fail to build seafile-server libevhtp
- iOS 正则表达式 NSRegularExpression
- Remoting和Webservice的区别
- CODE 144: Insertion Sort List
- Java学习笔记之字符串(六)
- File输入输出流综合
- Libevhtp
- 利用内存数据库和布隆过滤器写的网络爬虫
- C++对于bit的操作 bit直接赋值 及其他技巧(未完)
- C语言中static的作用
- LeetCode Integer to Roman数字转成罗马数字
- Struts介绍及学习视频
- 混合背包
- 【转载】ubuntu server 命令行下更换软件源
- 遇到的问题-----------perl脚本用handlersocket把数据插入mysql执行时报错lock_tables