libevent 学习笔记 四
来源:互联网 发布:linux修复win10引导 编辑:程序博客网 时间:2024/05/17 18:13
目的:测试event_base_loop()函数
方法: 作为服务器端,当有数据到来的时候,立刻关闭base
#include <event2/event.h>
#include <stdio.h>#include <unistd.h>
#include <sys/socket.h>
#include <string.h>
#include <string>
void cb(evutil_socket_t sock,short what,void *arg)
{
printf("function cb is called\n");
struct event_base *base=(struct event_base*)arg;
event_base_loopbreak(base);
}
void main_loop(struct event_base *base,evutil_socket_t watchdog_fd)
{
printf("function main_loop is called\n");
struct event *watchdog_event;
watchdog_event=event_new(base,watchdog_fd,EV_READ,cb,base);
event_add(watchdog_event,NULL);
event_base_dispatch(base);
}
int main()
{
struct event_base *base=event_base_new();
if(!base)
return -1;
evutil_socket_t listenfd,connfd;
socklen_t clilen;
struct sockaddr_in cliaddr,serveraddr;
listenfd=socket(AF_INET,SOCK_STREAM,0);
bzero(&serveraddr,sizeof(serveraddr));
serveraddr.sin_family=AF_INET;
serveraddr.sin_port=htons(15000);
serveraddr.sin_addr.s_addr=htonl(INADDR_ANY);
bind(listenfd,(struct sockaddr*)&serveraddr,sizeof(serveraddr));
listen(listenfd,10);
clilen=sizeof(cliaddr);
connfd=accept(listenfd,(struct sockaddr*)&cliaddr,&clilen);
main_loop(base,connfd);
return 0;
}
0 0
- libevent 学习笔记 四
- libevent学习四
- libevent源码阅读笔记(四)
- libevent学习笔记
- Libevent库学习笔记
- 学习笔记--libevent min_heap
- libevent学习笔记
- libevent学习笔记 -evbuffer
- Libevent学习笔记
- libevent 学习笔记 一
- libevent 学习笔记 二
- libevent 学习笔记 三
- libevent 学习笔记 一
- libevent学习笔记
- libevent学习笔记
- libevent学习笔记 -1 设置 Libevent库
- libevent学习笔记1:牛刀小试
- libevent学习笔记 一、基础知识
- Hibernate 查询不到数据
- AndroidStudio快捷键大全
- 百度地图POI检索
- 蛇形填数
- play框架使用起来(17)
- libevent 学习笔记 四
- 从头开始学java<四>上
- 几个简单的sql查询
- 为什么成功的人都不太要脸?
- 高性能 CSS3 动画
- VS2013下CButtonST使用技巧: CButtonST简介
- Stock Value
- 获取drawRect绘图后的截图
- caffe安装,编译(包括CUDA和cuDNN的安装),并训练,测试自己的数据(caffe使用教程)