下载此文档

epoll学习笔记.doc


文档分类:外语学习 | 页数:约32页 举报非法文档有奖
1/32
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/32 下载此文档
文档列表 文档介绍
epoll学————————————————————————————————作者:————————————————————————————————日期: epoll学epoll有两种模式,EdgeTriggered(简称ET)和LevelTriggered(简称LT).在采用这两种模式时要注意的是,如果采用ET模式,那么仅当状态发生变化时才会通知,而采用LT模式类似于原来的select/poll操作,:首先给出server的代码,ept的连接,加入可读集的时候采用的都是ET模式,而且接收缓冲区是5字节的,也就是每次只接收5字节的数据:#include <iostream>#include <sys/>#include <sys/>#include </>#include <arpa/>#include <>#include <>#include <>#include <>using namespace std;#define MAXLINE 5#define OPEN_MAX 100#define LISTENQ 20#define SERV_PORT 5000#define INFTIM 1000void setnonblocking(int sock){    int opts;    opts=fcntl(sock,F_GETFL);    if(opts<0)    {        perror("fcntl(sock,GETFL)");        exit(1);    }    opts = opts|O_NONBLOCK;    if(fcntl(sock,F_SETFL,opts)<0)    {        perror("fcntl(sock,SETFL,opts)");        exit(1);    }   }int main(){    int i, maxi, listenfd, connfd, sockfd,epfd,nfds;    ssize_t n;    char line[MAXLINE];    socklen_t clilen;    //声明epoll_event结构体的变量,ev用于注册事件,数组用于回传要处理的事件    struct epoll_event ev,events[20];    //ept的epoll专用的文件描述符    epfd=epoll_create(256);    struct sockaddr_in clientaddr;    struct sockaddr_in serveraddr;    listenfd = socket(, SOCK_STREAM, 0);    //把socket设置为非阻塞方式    //setnonblocking(listenfd);    //设置与要处理的事件相关的文件描述符    =listenfd;    //设置要处理的事件类型    =EPOLLIN|EPOLLET;    //=EPOLLIN;    //注册epoll事件    epoll_ctl(epfd,EPOLL_CTL_ADD,listenfd,&ev);    bzero(&serveraddr, sizeof(serveraddr));     = ;    char *local_addr="";    inet_aton(local_addr,&());//htons(SERV_PORT);    =htons(SERV_PORT);    bind(listenfd,(sockaddr *)&serveraddr, sizeof(serveraddr));    listen(listenfd, LISTENQ);    maxi = 0;    for ( ; ; ) {        //等待epoll事件的发生        nfds=epoll_wait(epfd,events,20,500);        //处理所发生的所有事件             for(i=0;i<nfds;++i)        {            if(events[i].==listenfd)            {             

epoll学习笔记 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数32
  • 收藏数0 收藏
  • 顶次数0
  • 上传人phl805
  • 文件大小182 KB
  • 时间2019-09-24
最近更新