`
gk23
  • 浏览: 171190 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IOCP与EPOLL简介

阅读更多

    目前网络服务器的瓶颈是IO效率, 有效的解决此瓶颈可以在线或并发人数大的问题。其中,IOCP(windows)和EPOLL(Linux)是基于IO编程的API。

IOCP

    全称I/O Completion Port,中文译为I/O完成端口。IOCP是一个异步I/O的API,它可以高效地将I/O事件通知给应用程序。与使用select()或是其它异步方法不同的是,一个套接字[socket]与一个完成端口关联了起来,然后就可继续进行正常的Winsock操作了。然而,当一个事件发生的时候,此完成端口就将被操作系统加入一个队列中。然后应用程序可以对核心层进行查询以得到此完成端口。

 

EPOLL

    传统的select及poll的效率会因为在线人数的线形递增而导致呈二次乃至三次方的下降,这些直接导致了网络服务器能支持的人数有了个比较明显的限制。自从Linux提供了/dev/epoll的设备及后来2.6内核中对/dev/epoll设备的访问的封装(System Epoll)之后,这种现象得到了大大的缓解。

    epoll的操作很简单,总共不过4个API:epoll_create, epoll_ctl, epoll_wait和close。
如果对想了解进一步epoll,可以参考关于网络游戏的网络编程等相关的文章。

分享到:
评论

相关推荐

    iocp-epoll

    iocp-epoll的几个例子,提供参考。 其中,iocp包含了几种使用方式,同步异步处理方式, epoll为linux下面使用,编译时可以使用下面简单命令, g++ -p -g -o hhh ***.cpp -l pthread

    epoll/iocp 比较

    关于epoll iocp select等网络模型运行实例代码

    epoll模拟iocp

    linux下的epoll模拟IOCP异步的demo,希望对学习epoll的朋友有所帮助。

    Windows完成端口与Linux epoll技术简介

    Windows完成端口与Linux epoll技术简介

    Windows完成端口与Linux+epoll技术简介

    Windows完成端口与Linux+epoll技术简介

    iocp 服务器代码

    iocp与epoll一样强悍。 代码经过测试,没有问题。放心下载吧,朋友们!很值得

    linux类IOCP接口

    利用epoll结合线程池封装的类IOCP网络接口

    使用libevent库设置httpserver所使用的系统特征值(select、epoll、iocp等)

    使用libevent库设置httpserver所使用的系统特征值(select、epoll、iocp等)

    IOCP EOPLL 性能比较 report

    win:IOCP linux:EOPLL 性能比较 report 相同的硬件环境下,分别对10,20,50,500个链接做了性能测试。

    百万并发量服务器设计方案

    百万并发量服务器设计方案:包含iocp,epoll等网络高级开发,以及内存池技术的设计等案例

    高性能跨平台网络通信框架.rar

    - ***Server*** 基于IOCP / EPOLL通信模型,并结合缓存池、私有堆等技术实现高效内存管理,支持超大规模、高并发通信场景。 - ***Agent*** Agent组件实质上是Multi-Client组件,与Server组件采用相同的技术架构。...

    linux socket NIO epoll教程参数讲解.zip

    大并发服务器编程模型 windows iocp完成端口模型可支持1万大并发,但是linux能作到5万大并发

    HP-Socket通信框架 v5.7.3

    为您提供HP-Socket通信框架下载,HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端...特点:Server基于IOCP / EPOLL通信模型,并结合缓存池、私有堆等技术实现高效内存管理,支持超大规模、高并发通

    HP-Socket:高性能TCPUDPHTTP通信组件

    服务器基于IOCP / EPOLL通信模型,结合内存池,私有堆等技术,实现了高效的内存管理,以支持大规模和高并发通信场景。 代理代理组件本质上是一个多客户端组件,它使用与服务器组件相同的技术体系结构。 Agent组件...

    Delphi 跨平台 Socket 通讯库

    支持http,epoll,iocp等。 ## 特性 - 针对不同平台使用不同的IO模型: - IOCP > Windows - KQUEUE > FreeBSD(MacOSX, iOS...) - EPOLL > Linux(Linux, Android...) - 支持极高的并发 - Windows > 能跑...

    HP-Socket通信框架-其他

    基于IOCP / EPOLL通信模型,并结合缓存池、私有堆等技术实现高效内存管理,支持超大规模、高并发通信场景。 Agent Agent组件实质上是Multi-Client组件,与Server组件采用相同的技术架构。一个Agent组件对象可同时...

    nginx v1.5.9 for windows

    2 增加wsa网络IO模型(Windows socket异步IO模型) 该模型支持WEB服务器 反向代理服务器和SSL安全连接 与Linux下的epoll具有同等的功能和效率 3 增加Windows和Linux平台下的多线程支持(Unix下尚未实现) 多线程...

    nginx v1.5.9 for windows 源程序

    2 增加wsa网络IO模型(Windows socket异步IO模型) 该模型支持WEB服务器 反向代理服务器和SSL安全连接 与Linux下的epoll具有同等的功能和效率 3 增加Windows和Linux平台下的多线程支持(Unix下尚未实现) 多线程...

    goofilelib1_0_0_4.tar.gz

    异步io事件分发,接口能够...案例中目前仅仅提供了epoll模型(支持多线程)后将添加iocp模型。 用户仅仅需要实现自己的事件分发类接口以及netio接口 当然业务层的东西还是需要用户自己去做,但是基本框架不用做任何改动了

Global site tag (gtag.js) - Google Analytics