ChinaUnix.net
相关文章推荐:

epoll事件模型

现在我程序的架构,epoll线程等待事件触发,然后将事件放到一个队列当中,通知工作线程开始工作。几个工作线程顺序取走事件,并做处理。 假设我的程序逻辑只是简单的转发,从一端读取,从另一端发走,唯一的要求就是严格按顺序收发。 现在遇到这样一个问题,假设只有一条连接的时候,连续触发的可读事件都是同一个fd, 那几个工作线程同时读一个fd,可能造成数据顺序改变。比如4个线程,缓冲区大小都是1500,read的时候这1500字节的...

by berniechen - C/C++ - 2009-08-26 15:28:04 阅读(4710) 回复(6)

相关讨论

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)

问一下,udp协议如何使用epoll模型,tcp用的比较多,还不知道udp如何使用?

by xht8015 - 内核源码 - 2010-11-24 11:09:53 阅读(4423) 回复(4)

Linux的epoll模型 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 也就是说...

by msj0520 - Linux文档专区 - 2009-12-07 15:14:17 阅读(1246) 回复(0)

epoll 事件的检测 1.。。 epoll 事件中发现 就epollIN , epollOUT , epollPRI可以用. epollERR 和 epollHUP什么情况下才能监测出这种问题啊. 我的内核是2.6.20 可是用epollRDHUP的时候编译包错. RecvMessThread.cpp:48: error: ‘epollRDHUP’ was not declared in this scope 2.。。 1、listen fd,有新连接请求,触发epollIN。 2、对端发送普通数据,触发epollIN。 3、带外数据,只触发epollPRI。 4、对端正常关闭(程序里close(...

by hxdhxd_hxd - 网络技术文档中心 - 2009-11-03 15:27:20 阅读(1191) 回复(0)

epoll的ET模式下,有时会发生如下的问题 1. epoll触发FD=A的事件 。 2.处理FD=A的事件并销毁A(即epoll_ctl_del(A)并close(A) ) 。 3.epoll再次触发FD=A的事件 。 如果这时候对象已经被删除或被重用,程序就会出现问题 。 哪位大侠解释下,不胜感激。

by lxyfirst - C/C++ - 2009-05-14 22:13:36 阅读(3278) 回复(7)

epoll会报的事件会不会有丢失而未报告的?

by UnixStudier - C/C++ - 2008-05-21 17:41:53 阅读(2143) 回复(3)

epoll 事件中发现 就epollIN , epollOUT , epollPRI可以用. epollERR 和 epollHUP什么情况下才能监测出这种问题啊. 我的内核是2.6.20 可是用epollRDHUP的时候编译包错. RecvMessThread.cpp:48: error: ‘epollRDHUP’ was not declared in this scope 请问还的include什么头文件啊... 谢谢了啊.

by ruchong - C/C++ - 2007-07-11 16:20:45 阅读(1727) 回复(0)

除了ngnix之外,还有没有比较好的采用epoll的开源代码?ngnix有点大,没太多时间学习它。 大牛赐教。

by VIP_fuck - C/C++ - 2013-04-09 17:10:08 阅读(933) 回复(0)

除了ngnix之外,还有没有比较好的采用epoll的开源代码?ngnix有点大,没太多时间学习它。 大牛赐教。

by VIP_fuck - C/C++ - 2013-04-10 00:29:21 阅读(1772) 回复(5)

epoll模型有两种工作模式,ET和LT,两种模式下都有一些细节值得注意,以下是一些思考: 一、ET模式下 Q1: 调用accept时,到底TCP完成队列里有多少个已经建立好的连接? 这里又得分情况来说: 没有连接。这种情况发生在TCP连接被客户端夭折,即在服务端调用accept之前客户端给出一个RST。该RST导致刚刚建立好的连接从服务器端的TCP完成队列中被移出。源自berkeley的实现会在内核处理该事件,并不会将该事件通知给服务程序,如果套接口...

by famdestiny - Linux文档专区 - 2009-08-27 11:28:03 阅读(705) 回复(0)