首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Linux网络】多路转接:select、poll、epoll

    1、select 在Linux中,常见的多路转接/复用有 select、poll 和 epoll 。...2、poll 和 select 一样,poll的定位也是对多个 fd IO事件的等待机制,达到事件派发的目的。...3、epoll epoll 是 Linux 系统中一种高效的 I/O 事件通知机制,常用于处理大量文件描述符的 I/O 事件,特别适合高并发场景。...3.1 epoll_create int epoll_create(int size); 在内核中创建一个 epoll 模型,并返回文件描述符用于后续的操作; 自从 linux2.6.8 之后,size...) 如果函数调用成功,返回对应 I/O 上已准备好的文件描述符数目,如返回 0 表 示已超时,返回小于 0 表示函数失败 3.4 epoll 工作原理 当进程调用 epoll_create 方法时,Linux

    37110

    【Linux】高级IO --- 多路转接,select,poll,epoll

    在这里额外补充一下,linux命令行中表示输入结束的快捷键是ctrl+d,当此热键被用户按下后,代表0号文件描述符写端关闭,此时读端会读到0,read会返回0值,此时进程除了输出提示信息"read file...虽然说epoll是作了改进的poll,但在接口的使用和底层实现上,epoll和poll天差地别,在linux内核2.5.44版本时,就引入了epoll接口,而现在主流的linux内核版本已经是3点几了。...epoll_create会在内核帮我们创建一个epoll模型,这个epoll模型非常的重要,可以帮助我们理解epoll高效的原因,以及他工作的机制,所谓的epoll模型其实也是一个struct file...当数据到达网卡时,我们知道数据会经过硬件中断,CPU执行中断向量表等步骤来让数据到达内存中的操作系统内部,在OS内贯穿网络协议栈时,在传输层数据会被拷贝到struct file结构体中的receive_queue...接收缓冲区中,这个struct file结构体对应的文件描述符,其实就是accept上来的用于通信的sockfd,在这个结构体内部有一个非常重要的字段private_data,该指针会指向一个回调函数,

    53630
    领券