ChinaUnix.net
相关文章推荐:

epoll 实例

1. epoll 是何方神圣? epoll 可是当前在 Linux 下开发大规模并发网络程序的热门人选, epoll 在 Linux2.6 内核中正式引入,和 select 相似,其实都 I/O 多路复用技术而已 ,并没有什么神秘的。 其实在 Linux 下设计并发网络程序,向来不缺少方法,比如典型的 Apache 模型( Process Per Connection ,简称 PPC ), TPC ( Thread Per Connection )模型,以及 select 模型和 poll 模型,那为何还要再引入 epoll 这个东东呢?...

by langwan1314 - C/C++ - 2011-03-04 15:39:13 阅读(17325) 回复(21)

相关讨论

大家有没有遇到epoll_wait()一次返回的事件里有相同的events,就是events.data.fd=events[j].data.fd (i!=j), 我测试的是一秒大概5000个tcp通信

by edward_35 - C/C++ - 2011-09-03 17:31:47 阅读(2185) 回复(5)

各位有没有linux 下 epoll 编程方面的书籍啊?关于C 或者 C++ 的!

by RubenLung - C/C++ - 2010-03-01 18:41:37 阅读(1567) 回复(6)

Linux 2.6内核中提高网络I/O性能的新方法epoll 正如我昨天在“Linux下各类TCP网络服务器的实现源代码”( http://zhoulifa.bokee.com/5345930.html )一文中提到的那样,I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。 感谢chinaunix.net上朋友safedead( http://bbs.chinaunix.net/viewpro.php?uid=407631 )提醒,我今天仔细研究了一下,证实了在2.6内核中的新的I/O技术epoll。 1、为什么select是...

by jiablog - 网络技术文档中心 - 2009-01-11 00:59:06 阅读(1946) 回复(0)

epoll刚开始收包的时候正常。 收了一会以后一直阻塞epoll_wait这边。 我已经做了 struct epoll_event ev; ev.data.fd = client_socket; ev.events = epollIN|epollET; if (epoll_ctl(epfd, epoll_CTL_MOD, client_socket, &ev)) { perror("error1:"); exit(0); }

epollwait

by youzlm - C/C++ - 2010-12-03 14:04:22 阅读(3247) 回复(4)

1、epoll能否监控普通文件描述符,像监控socket那样 2、如果不能的话,要是有多个普通文件描述符,需要监控,有类似于epoll监控socket的方法吗?

by 316953425 - C/C++ - 2013-10-26 20:24:39 阅读(2312) 回复(6)

epoll_ctl(epfd, epoll_CTL_ADD, sockfd, &ev) epoll_ctl(epfd, epoll_CTL_ADD, sockfd, &ev) 可不可以对同一个sockfd添加两次呢? epoll_wait(epfd, events, MAX_EVENTS, -1); 如果可以那events集合里会返回两个吗?

by daxiguagg - Linux环境编程 - 2013-08-21 16:58:56 阅读(1192) 回复(4)

在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明: #define __FD_SETSIZE 1024 表示select最多同时监听1024个fd,当然,可以通过修改头文件再...

by patagonia - Linux环境编程 - 2011-06-01 17:28:15 阅读(3528) 回复(4)

以下描述都是站在服务器角度看的 ET方式下: 如果有数据 进入(也就是对应客户单的send),则触发事件。如果服务器没有读取完毕,也不再通 知。当然后续如果有继续的send或者关闭 请求,将还会通知。要理解缓冲区的变化,或者socket 状态变化。 在此事件通知 是指对应描述符socket状态的变化时候触发的。比如有数据进出,或者关闭。 所谓状态变化,主要是对方在该socket描述符上的操作(...

by wwm - Linux文档专区 - 2010-02-20 17:43:02 阅读(1038) 回复(0)

Linux 2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。 1、为什么select落后 首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数,在我用的2.6.15-25-386内核中,该值是1024,搜索内核源代码得到: include/linux/posix_types.h: #define __FD_SETSIZE 1024 也就是说,如果想要同时检测1025个句柄...

by icebsd - Linux文档专区 - 2009-12-25 08:14:54 阅读(735) 回复(0)

昨天在CU上看到epoll, 自己既然还从来没听说过. google了一下. 练习了一下, 太懒, 本来可以写的更好写. 以下是从 /** * http://blog.csdn.net/mote_li/archive/2004/12/08/209450.aspx */ 修改的. 关键是学习他的epoll使用, 其它的就别了. 自己编译测试了一下, 感觉有点意思就share一下. /** * 该文件名为epoll.c * * 该测试代码是从http://blog.csdn.net/mote_li/archive/2004/12/08/209450.aspx修改来的. 只供学习使用....

by ubuntuer - Linux文档专区 - 2009-09-29 17:08:49 阅读(818) 回复(0)