网络编程
文章平均质量分 81
技术为王Y
学习的路上
展开
-
epoll使用详解(精髓)
epoll - I/O event notification facility 在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且转载 2013-06-25 10:16:36 · 422 阅读 · 0 评论 -
linux中select()函数分析
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式转载 2013-06-25 16:08:32 · 401 阅读 · 0 评论 -
epoll原理
开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢? 先简单回顾下如何使用C库封装的3个epoll系统调用吧。转载 2013-07-01 10:33:16 · 457 阅读 · 0 评论 -
Epoll模型详解
2011-09-18 02:46:29| 分类: Linux编程|字号 订阅 Linux 2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。 1、为什么select落后 首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__F转载 2013-07-01 10:49:23 · 407 阅读 · 0 评论 -
select模型讲解
Select模型原理 利用select函数,判断套接字上是否存在数据,或者能否向一个套接字写入数据。目的是防止应用程序在套接字处于锁定模式时,调用recv(或send)从没有数据的套接字上接收数据,被迫进入阻塞状态。 select参数和返回值意义如下: int select ( IN int nfds, //0转载 2013-07-02 14:28:05 · 891 阅读 · 0 评论 -
IO多路复用
与多线程和多进程相比,I/O多路复用的最大优势是系统开销小,系统不需要建立新的进程或者线程,也不必维护这些线程和进程。 主要应用: (1)客户程序需要同时处理交互式的输入和服务器之间的网络连接 (2)客户端需要对多个网络连接作出反应 (3)TCP服务器需要同时处理多个处于监听状态和多个连接状态的套接字 (4)服务器需要处理多个网络协议的套接字 (5)服务器需要同原创 2013-07-02 18:18:40 · 500 阅读 · 0 评论