当前位置: 首页 > wzjs >正文

交互设计个人网站网络营销做得好的产品

交互设计个人网站,网络营销做得好的产品,经典 网站,河南省新闻奖评选通知这里写目录标题 epoll介绍操作函数epoll_create()epoll_ctl()epoll_wait() 操作步骤 epoll介绍 epoll底层模型是一个红黑树,红黑树的每一个节点(每一个节点代表一个文件描述符)都对应一组事件(events),当某…

这里写目录标题

  • epoll介绍
  • 操作函数
    • epoll_create()
    • epoll_ctl()
    • epoll_wait()
  • 操作步骤

epoll介绍

epoll底层模型是一个红黑树,红黑树的每一个节点(每一个节点代表一个文件描述符)都对应一组事件(events),当某个文件描述符就绪了,就会触发相关的事件,每出发一个事件,就会有一个相关的处理函数被调用。

操作函数

#include<sys/epoll.h>
//创建epoll实例,通过一棵红黑树管理待检测集合
int epoll_create(int size);
//管理红黑树上的文件描述符(添加,修改,删除)
int epoll_ctl(int epfd, int op , int fd , struct epoll_event * event);
//检测 epoll 树中是否有就绪的文件描述符
int epoll_wait ( int epfd , struct epoll_event * events , int maxevents , int timeout );

epoll_create()

会创建一个epoll的实例,(也就是红黑树)
返回值:epoll 实例的 文件描述符,通过这个文件描述符来操作红黑树。

epoll_ctl()

int epoll_ctl(int epfd, int op , int fd , struct epoll_event * event);
int epfd : epoll 实例的文件描述符。
int op:
EPOLL_CTL_ADD : 在红黑树中添加文件描述符,并且指定检测的事件。
EPOLL_CTL_MOD : 修改已经添加到树节点的文件描述符的事件。
EPOLL_CTL_DEL : 删除已经添加到epoll树中的文件描述符

  typedef   union   epoll_data{void  *ptr;int     fd;uint32_t   u32;uint64_t   u64;} epoll_data_t;struct   epoll_event {uint32_t   events;          //事件epoll_data_t   data;}

events 的取值,对应各种事件。
EPOLLIN : 检测文件描述符的读事件,也就是检测这个文件描述符的读缓冲区中是否还有数据。
EPOLLOUT : 检测文件描述符的写事件,也就是检测写缓冲区是否可写。
EPOLLERR
EPOLLET 水平出发模式,边沿触发模式。

返回值:成功返回0,失败返回 -1 。

epoll_wait()

int epoll_wait (int epfd , struct spoll_event *events , int maxevents , int timeout);
检测添加到树上所有的节点是不是已经处于就绪状态;
如果有处于就绪状态的文件描述符,这个状态就会返回。
告诉我们有哪些文件描述符是就绪的。

如果树上没有就绪的文件描述符,这个就会一直阻塞,一直检测。
struct spoll_event *events : 传出参数,

操作步骤

1,创建监听的套接字
int  lfd = socket(AF_INET,SOCK_STREAM);
2,设置端口复用(可选)
int   opt = 1;
setsockopt(lfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));
3,使用本地的 ip 与端口和监听的套接字进行绑定
int   ret  =  bind(lfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr));
4,给监听的套接字设置监听
listen(lfd,128);
5,创建epoll实例对象
// An highlighted block
int  epfd = epoll_create(100);
6,将用于监听的套接字添加到epoll实例中
// An highlighted block
struct  epoll_event  ev;
ev.events = EPOLLIN;
ev.data.fd = lfd;
int ret = epoll_ctl(epfd,EPOLL_CTL_ADD,lfd,&ev);
7,检测添加到epoll实例中的文件描述符是否已经就绪并且将这些已就绪的文件描述符进行处理int  num = epoll_wait(epfd,evs,size,-1);如果是监听的文件描述符,和新客户端连接,将此文件描述符加入epoll树中int  cfd = accept(curfd,NULL,NULL);ev.events = EPOLLIN;ev.data.fd = cfd;epoll_ctl(epfd,EPOLL_CTL_ADD,cfd,&ev);如果是通信的文件描述符,和对应客户端通信
http://www.dtcms.com/wzjs/182382.html

相关文章:

  • 摄影网站都有什么网站推广优化流程
  • 促销型网站百度退款客服电话
  • 什么叫网站收录2022最近热点事件及评述
  • 高端html5网站建设的思路深圳谷歌推广公司
  • b s结构网站开发设计网站排名
  • 广州网站开发债券交软文吧
  • 商城类网站建设报价网站恶意点击软件
  • 建设网站的虚拟机配置百度客服人工电话95188
  • 珠海动态网站制作推广新东方烹饪培训学校
  • ps教程网站有哪些新浪微博指数查询
  • 蓝牙 技术支持 东莞网站建设艾滋病阻断药有哪些
  • 嘉兴网站优化温州seo公司
  • 什么安装wordpressseo快速优化排名
  • 国外域名的网站优化网站推广
  • 太仓市住房和城乡建设局官方网站网站seo快速优化技巧
  • 松岗做网站联系电话注册城乡规划师含金量
  • 网站备案注销南宁seo关键词排名
  • 厦门在哪个网站做用工报备友链大全
  • 镇海淘宝网站建设龙岩网站推广
  • 保定网站搜索引擎优化小企业广告投放平台
  • 南宁 网站设计建站工具有哪些
  • 怎么做跳转流量网站抖音seo优化
  • 免费做网站可以一直用吗温州seo排名公司
  • 更新网站要怎么做呢网络推广推广培训
  • 网站seo步骤经典软文案例100例
  • 广西南宁建设厅网站软文平台发布
  • 四川省建设厅职业注册中心网站小红书怎么做关键词排名优化
  • 红色网站主题新闻发稿发布平台
  • 金华商城网站制作赣州seo唐三
  • 武昌做网站哪家专业网络营销怎么做