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

linux网络编程poll笔记

poll函数执行的时候具体做了啥?

代码示例:

// .......
struct pollfd fds[1024] = {0};
fds[sockfd].fd = sockfd;
fds[sockfd].events = POLLIN;int maxfd = sockfd;
while(1) {int nready = poll(fds, maxfd+1, -1);// ......    
}
//.......

1. poll中会将用户定义的pollfd结构体数组(fds)丢入系统内核,并将fds中每个pollfd结构体的文件描述符(fd)与当前进程丢入等待队列中。

2. 然后开始轮询fd中的每个文件描述符是否处于打开状态。如果是,就会检查该文件描述符对应触发的I/O事件是不是用户关心的事件(代码中的POLLIN事件)。如果是,就写入该pollfd中的revents中。

3. 增加可以被调用的文件描述符的数量(++nready)表示有一个文件描述符可以使用了,且用户关心的事件被触发了。

相关文章:

  • 实验12 路由重分布
  • STL-常用容器
  • Elastic 索引结构-倒排索引
  • 【AI绘画】Stable Diffusion 3开源
  • Linux3(进程 编辑文件 用户管理 网络)
  • C#A类调用B类的方法,在方法中更新B类的控件
  • c#中上传超过30mb的文件,接口一直报404,小于30mb的却可以上传成功
  • Java多线程-StampedLock(原子读写锁)
  • 小学生期刊知网//《小学生》评职称认可吗?
  • 笔记-前端
  • Android 列表视频滑动自动播放(实现思路)
  • 如何舒适的使用VScode
  • win10 双显卡,双显示器,VGA那个经常出现息屏(待机后无法唤醒),必须重启才能解决,(图文)手把手教你如何处理简单愉快的解决。
  • WinForm之TCP服务端
  • Centos上部署Node服务和MongoDB
  • Android Volley源码解析
  • canvas 五子棋游戏
  • Docker: 容器互访的三种方式
  • Flannel解读
  • Hibernate【inverse和cascade属性】知识要点
  • SpingCloudBus整合RabbitMQ
  • 编写高质量JavaScript代码之并发
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 前端面试之闭包
  • 说说动画卡顿的解决方案
  • 微服务核心架构梳理
  • 一个完整Java Web项目背后的密码
  • 应用生命周期终极 DevOps 工具包
  • 06-01 点餐小程序前台界面搭建
  • k8s使用glusterfs实现动态持久化存储
  • raise 与 raise ... from 的区别
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • $jQuery 重写Alert样式方法
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (4) PIVOT 和 UPIVOT 的使用
  • (libusb) usb口自动刷新
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (二)PySpark3:SparkSQL编程
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • ./configure,make,make install的作用
  • .apk 成为历史!
  • .Net - 类的介绍
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET 快速重构概要1
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .net6+aspose.words导出word并转pdf
  • .NET单元测试
  • .NET命名规范和开发约定
  • .NET与java的MVC模式(2):struts2核心工作流程与原理