首页 > 编程语言 >tcp网络编程4—并发的io多路复用实现(select)

tcp网络编程4—并发的io多路复用实现(select)

时间:2023-03-22 19:57:25浏览次数:43  
标签:set writefds readfds tcp 描述符 fd io select

原型:

  int select(int max fdp1, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)

功能:

  委托内核检查描述符集是否准备好(即可以使用)

参数:

  fdp1:最大的fd加1,在三个描述符集(readfds、writefds、wxceptfds)中找出最大的描述符,然后再加1

  readfds、writefds、wxceptfds:指向描述符集的指针。这三个描述符集说明了我们关心的可读、可写、或处于异常条件的各个描述符。

  timeout:指定等待时间

      NULL:永远等待,直到捕捉到信号或文件描述符已经准备好

      具体值:具体等待的时间,若等到超时且描述符集中的文件描述符还没有准备好,就立即返回。

      0:不等待,测试所有指定的描述符并立即返回(不能等到其准备好)

返回值:

  > 0:准备好的文件描述符

  =0:超时了

  < 0(-1):出错

 

传入的参数是告诉内核:

  我们所关心的描述符;

  对于每个描述符我们所关心的条件

 

 

 

 

  

标签:set,writefds,readfds,tcp,描述符,fd,io,select
From: https://www.cnblogs.com/zj-studyrecoding/p/17245220.html

相关文章

  • TCP文件上传实现
    packageedu.wtbu;importjava.io.*;importjava.net.ServerSocket;importjava.net.Socket;//服务器端publicclassDemo05{publicstaticvoidmain(String[]args......
  • 智能控制 | AIRIOT智慧楼宇管理解决方案
    许多行业客户在智慧楼宇的建设中主要面临运营管理低效,楼宇内部各个系统相互独立,不仅管理操作复杂,而且各系统间的数据无法分享,无法支撑大数据分析。此外,由于楼宇管理系统的低......
  • uniapp使用uni.createSelectorQuery()获取高度为null
    添加定时器后获取setTimeout(()=>{constquery=uni.createSelectorQuery().in(this);query.select('.content').boundingClientRect((data)=>{console.log('da......
  • Python互联网大数据爬虫的武汉市二手房价格数据采集分析:Linear Regression模型、XGBoo
    全文链接:http://tecdat.cn/?p=31958原文出处:拓端数据部落公众号分析师:YanLiu我国有大量的资金都流入了房地产行业,同时与其他行业有着千丝万缕的联系,可以说房地产行业对......
  • IOS 不支持this.$router.go解决办法
    在使用Vue路由实例对象$router.go进行页面切换时ios是不起作用得,可以使用location.href = "javascript:history.go(-2);"解决......
  • socket,io
    https://socket.io/zh-CN/docs/v4/https://blog.csdn.net/m0_52040370/article/details/127961608?spm=1001.2014.3001.5502https://www.cnblogs.com/Himmelbleu#/p/1660......
  • new Date(时间) IOS兼容的问题
    当时间格式为yyyy-MM-ddHH:mm:ss时,即日期使用-连接时,ios会无法识别,返回invalidDate无法识别和转换解决方法:使用replace替换,直接将-替换为/这样安卓和IOS就都可以......
  • ASP.NET Core API模型绑定和Action数据返回格式
    参考文档:https://www.cnblogs.com/FlyLolo/p/ASPNETCore2_20.html模型绑定[FromQuery]-从URL中取值。[FromRoute]-从路由中取值。[FromForm]-从表单中取值。Pos......
  • HTTP状态管理Cookie与Session
    HTTP状态管理Cookie与SessionCookieCookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器颁发一个Cookie客户端浏览器会把C......
  • 磁盘IO故障排查(docker模拟程序)
    如何快速排查Linux磁盘IO故障雷哥 Cloud研习社 2022-08-3107:31 发表于山东收录于合集#云计算179个#实战经验74个#linux192个#计算机168个#存储系统11个......