Linux:使用libevent的http事件处理框架搭建一个http服务器
代码:
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <event2/event.h>
#include <event2/bufferevent.h>
#include <event2/http.h>
#include <event2/http_struct.h>
#include <event2/buffer.h>
#include <event2/listener.h>
void * api_index(struct evhttp_request * ev_request, void * arg)
{
char buf[1024];
//sprintf(buf, “目录名:当前目录:”);
sprintf(buf, “hello world!”);//网页根目录显示的内容
struct evbuffer* evbuff = evbuffer_new();
evbuffer_add_printf(evbuff,“%s”,buf);
evhttp_send_reply(ev_request, HTTP_OK, NULL, evbuff);
evbuffer_free(evbuff);
}
int main(int agrc, const char * argv[])
{
const char* ip = “127.0.0.1”;
int port = 6868;
struct event_config * evt_config = event_config_new();//默认配置
struct event_base * base = event_base_new_with_config(evt_config);//使用默认配置创造event_base
struct evhttp* http = evhttp_new(base);//创造http服务器,处理http请求
evhttp_set_default_content_type(http,"text/html/ charset=utf/8");//默认html格式回复客户端evhttp_set_timeout(http, 30);//tcp的sml时间为30毫秒//设置url的回调函数
evhttp_set_cb(http,"/",(void *)api_index, NULL);
//evhttp_set_cb(http,"/api/health",api_health,this);evhttp_bind_socket(http,ip,port); //绑定端口和ip地址
event_base_dispatch(base); //事件分发循环event_base_free(base);
evhttp_free(http);
event_config_free(evt_config);
}
结果:
Linux:使用libevent的http事件处理框架搭建一个http服务器相关推荐
- 在Linux中搭建一个FTP服务器
在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用.禁用匿名.第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1:第二个小组使用ftp2,工作目录在:/var/f ...
- php开发ftp服务器搭建教程,在Linux中搭建一个FTP服务器
在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用.禁用匿名.第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1:第二个小组使用ftp2,工作目录在:/var/f ...
- Linux中搭建一个ftp服务器详解
来源:Linux社区 作者:luzhi1024 详解Linux中搭建一个ftp服务器. ftp工作是会启动两个通道: 控制通道 , 数据通道 在ftp协议中,控制连接均是由客户端发起的,而数据连接有 ...
- Doom Emacs入门:通过Doom Emacs框架搭建一个基本的Python开发环境及其基本操作
Doom Emacs入门:通过Doom Emacs框架搭建一个基本的Python开发环境及其基本操作 一.写在前面 1.1 明确目标:搭建一个完整的Python开发环境 1.2 前置工作 二.Doom ...
- [Web]如何利用Boostrap框架搭建一个还可以的静态网站(五_子页_脱发指南)
文章目录 返回总结 整体效果 组件 人物介绍块 内容介绍块 代码 独属CSS HairLossGuide.css html HairLossGuide.html 返回总结 如何利用Boostrap框架 ...
- 通过python利用Django框架搭建一个属于自己的免费网站(已更新)
大家好,我是天空之城,今天给大家带来,通过python利用Django框架搭建一个属于自己的免费网站. 以下是网上找到的免费教程,https://djangogirlstaipei.gitbooks. ...
- [Web]如何利用Boostrap框架搭建一个还可以的静态网站(六_子页)
文章目录 返回总结 整体效果 组件 vedio题目 vedio博主介绍 vedio vedio用户留言 电子烟评测块 辩论块 代码 html ElectronicCigarettes.html 返回总 ...
- [Web]如何利用Boostrap框架搭建一个还可以的静态网站(四_子页_戒烟小说)
文章目录 返回总结 整体效果 思路 组件 轮播图 排行榜 轮播广告语 广告 空行 小说块 代码 独属css SmokeNote_Style.css html SmokeNote.html 返回总结 如 ...
- [Web]如何利用Boostrap框架搭建一个还可以的静态网站(三_主页)
文章目录 返回总结 整体效果 思路 各个组件代码 导航栏 LOGO 滚动时间 标题线 图词模块 页脚 代码 独属css文件 indexCss1.css html代码 index.html 返回总结 如 ...
最新文章
- Gradle's dependency cache may be corrupt解决方法
- 【PHP】常用日期函数
- 如何使用Hibernate批处理INSERT和UPDATE语句
- Java访问修饰符——用于控制可见性
- 系统集成资质培训 - 2013下半年系统集成资质申报及集成资质考试
- 【Bug解决】yum提示Another app is currently holding the yum lock; waiting for it to exit...
- 为什么说至强系列cpu是服务器u,至强cpu那么好,为什么日常装机的时候一般都选酷睿系列的呢?...
- 零零信安:攻击面管理(ASM)技术详解和实现
- 人工智能都可以写代码了,程序员怎么做才能不被时代淘汰?
- 尹博学:OceanBase Cloud正式开服,助力全球中小企业数智化升级
- 轻量级肝脏与肝脏瘤2.5D分割网络阅读笔记
- Excel VBA(02)工作簿、工作表、单元格操作
- 用Pytorch实现RGB2LAB,LAB2RGB。
- 手机一键去水印的软件有什么
- python通过url获取文件名和文件的后缀
- 关于浏览器主页被劫持问题解决办法
- 【cec14_func】修改版
- Linux_shell——第5章 一团乱麻?没这回事
- [2017BUAA软工]第0次个人作业
- 上网人不可不知的网络语言(集锦)