epoll

1、epoll如何用的

int epfd= epoll_create(1);//创建红黑树根节点

struct epoll_event ev,events[1024]={0};

ev.event = EPOLLIN;

ev.data.fd = sockfd;

epoll_ctl(epfd,EPOLL_CTL_ADD,sockfd,&ev);//将绑定的scoketfd添加到前面创建的epoll红黑树中

while(1)
{

        int nread = epoll_wait(epfd,events,1024,-1);
/*等待接受数据,events带出所有需要处理的fd,*/
/*参数-1表示有数据就触发返回,返回的nread表示有多少个需要处理的fd,*/
/*即events数组中有多少个需要处理的fd,*/
/*参数1024表示epoll能一次性能处理的fd是多少 */
/*fd类型有两种,一种是accept、另一种是recv/send */

        if(nread < -1) break;

        int i = 0;

        for (i = 0; i< nready; i++)

        {

                struct sockaddr_in client_addr;

                memset();
       



         }
}

2、epoll的et与lt

et: 边沿触发,关键字触发一次 ,recv buff没有数据变成有数据这个过程触发一次,或者有数据时只触发一次,小块数据使用,et+循环 多次性读完

lt:水平触发,关键字有数据触发多次, recv buff有数据一直触发直到buff数据读完,大块数据使用,lt+一次性读完,监听fd适合lt

3、reactor反应堆,epoll

4、proactor

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值