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

wordpress 站群会员互联网推广广告

wordpress 站群会员,互联网推广广告,外贸软件都是怎么收费的,汕头网站优化找谁文章目录 select 函数fd_set 类型timeval 结构体select 函数的基本使用流程文件描述符就绪条件以select函数为中心实现多路转接的思路select 缺陷 select 函数 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); selec…

文章目录

  • select 函数
  • fd_set 类型
  • timeval 结构体
  • select 函数的基本使用流程
  • 文件描述符就绪条件
  • 以select函数为中心实现多路转接的思路
  • select 缺陷

select 函数

int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);

select函数是一个用于多路复用的系统调用,用于监视一组文件描述符(fd_set)的状态变化。它可以同时监视多个文件描述符,等待其中任意一个文件描述符准备好进行读、写或异常处理。

参数说明:

nfds:要监视的文件描述符的最大值加1。
readfds:用于监视可读事件的文件描述符集合。
writefds:用于监视可写事件的文件描述符集合。
exceptfds:用于监视异常事件的文件描述符集合。
timeout:超时时间,指定select函数的阻塞时间,可以设为NULL表示永久阻塞,也可以设为指向timeval结构体的指针,设置超时时间。

fd_set 类型

fd_set是一个用于表示文件描述符集合的数据类型,在C语言中使用。它是一个位图(bitmap)类型,用于在多路复用机制中管理文件描述符的就绪状态。

在使用fd_set类型时,需要使用一些宏函数进行相关操作,如FD_ZERO、FD_SET、FD_CLR和FD_ISSET。

FD_ZERO(fd_set *set):将指定的fd_set集合清空,将所有位都设置为0。
FD_SET(int fd, fd_set *set):将指定的文件描述符fd添加到fd_set集合中。
FD_CLR(int fd, fd_set *set):将指定的文件描述符fd从fd_set集合中移除。
FD_ISSET(int fd, fd_set *set):检查指定的文件描述符fd是否在fd_set集合中,并返回相应的状态。

timeval 结构体

timeval结构体定义如下:

struct timeval {time_t tv_sec;  // 秒数suseconds_t tv_usec;  // 微秒数
};

其中,tv_sec表示秒数,tv_usec表示微秒数。在使用timeval结构体时,可以通过设置tv_sec和tv_usec的值来表示相应的时间。

在多路复用机制中,可以将timeval结构体用作select函数的timeout参数,指定select函数的阻塞时间。如果timeout设置为NULL,select函数将会永久阻塞,直到有文件描述符就绪或被信号中断。如果timeout设置为指向timeval结构体的指针,则select函数会在指定的时间内阻塞,超过指定时间后会返回0。

select 函数的基本使用流程

在这里插入图片描述

文件描述符就绪条件

select函数或其他多路复用机制时,可以通过以下条件来判断一个socket是否就绪:

可读条件(Read-ready):当一个socket上有数据可读时,即接收缓冲区中有数据等待读取,这个socket就被认为是可读的。

可写条件(Write-ready):当一个socket上的发送缓冲区有足够的空间可以写入数据时,这个socket就被认为是可写的。

异常条件(Exceptional condition):当一个socket上发生了异常情况,如带外数据到达或连接错误,这个socket就被认为是异常的。

以select函数为中心实现多路转接的思路

在这里插入图片描述

select 缺陷

每次调用select, 都需要手动设置fd集合, 从接口使用角度来说也非常不便
(体现为需要数组数据结构辅助)
每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大(指select的执行过程)
同时每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也很大(指select的执行过程)
select支持的文件描述符数量太小(512 * 8 个bit位)

http://www.hkea.cn/news/835451/

相关文章:

  • 网站建设的广告语seo自动工具
  • 有专门做市场分析的网站么太原关键词优化报价
  • 网站文化建设搜索引擎推广的常见形式有
  • wordpress分类目录消失泸州网站seo
  • 易云巢做网站公司seo入门到精通
  • 新津网站建设百度ai助手入口
  • 做学校网站什么文案容易上热门
  • 网站开发技术包括郑州网站关键词排名
  • 网站开发预算怎么算百度竞价ocpc
  • 成都锐度设计公司怎么样优化大师怎么提交作业
  • 租用网站服务器东莞市网站建设
  • 馆陶县网站网站运营管理
  • 西双版纳傣族自治州医院seo搜索优化网站推广排名
  • wordpress站点网址小吃培训2000元学6项
  • 郑州网站制作天强科技seo百度发包工具
  • 江阴市住房与建设局网站seo工资多少
  • wordpress image.php南宁百度首页优化
  • 谢家华做网站百度指数与百度搜索量
  • wordpress 安装 ubuntu整站优化代理
  • 做公司网站协议书模板下载百度竞价推广公司
  • 福田蒙派克6座二手值多少钱重庆seo点击工具
  • 有了域名 怎么做网站外贸网站推广方法之一
  • 审美网站长春网站建设路
  • 网站 管理系统域名查询注册信息查询
  • 专业网站设计发展前景推广网站软文
  • 怎么建设seo自己网站网站优化推广教程
  • 最新app开发软件石家庄网站建设seo公司
  • 江苏自助建站系统哪家好推广网站要注意什么
  • 唐河做网站关键字搜索引擎
  • 松江专业做网站公司seo视频教程百度云