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的事件 。 如果这时候对象已经被删除或被重用,程序就会出现问题 。 哪位大侠解释下,不胜感激。
epoll 事件中发现 就epollIN , epollOUT , epollPRI可以用. epollERR 和 epollHUP什么情况下才能监测出这种问题啊. 我的内核是2.6.20 可是用epollRDHUP的时候编译包错. RecvMessThread.cpp:48: error: ‘epollRDHUP’ was not declared in this scope 请问还的include什么头文件啊... 谢谢了啊.
本帖最后由 jd808 于 2010-09-15 17:21 编辑 有时候前端发一串数据,确实发送成功了,但后端的epoll就是检测不到,半天不动,我是用边缘触发模式的,用的ev.events = epollIN | epollOUT | epollET;这3个参数,但我把前端一关掉(断开),后端的事件又被触发了,数据读到了,要怎么解决这个问题呀
LINUX中无法更改套接口选项 SO_SNDLOWAT,低水位永远是1字节,导致可写事件经常被触发;频繁将描述符从epoll-fd一进一出是不实际的。大家有什么好的建议吗? 一个想法是:用两个epoll描述符,kpfd_r和kpfd_rw,第一个描述符监视套接口的可读事件; 第二个描述符监视可读可写事件,但是由一个定时器控制;代码大概如下[code] while ( TRUE ) { usleep(2000);// 2 ms epoll_wait( kpfd_r, ...,..., 0 ); // non block process...
大家好: 在学习的过程中遇到一个问题,再做底层通信的时候选择的是用epoll来管理所有的链接,用epoll_wait来等待所有的事件触发,然后针对不同的事件、不同的socket做不同的处理,当对端主动关闭了socket的时候会触发一个epollIN事件,在这里可以对这个socket做响应的处理(以这个socket为关键字关联了一些其他的数据,当socket被关闭了之后需要释放这些数据所占用的内存), 问题:如果我想主动地关闭一个socket的时候,我...
现在我程序的架构,epoll线程等待事件触发,然后将事件放到一个队列当中,通知工作线程开始工作。几个工作线程顺序取走事件,并做处理。 假设我的程序逻辑只是简单的转发,从一端读取,从另一端发走,唯一的要求就是严格按顺序收发。 现在遇到这样一个问题,假设只有一条连接的时候,连续触发的可读事件都是同一个fd, 那几个工作线程同时读一个fd,可能造成数据顺序改变。比如4个线程,缓冲区大小都是1500,read的时候这1500字节的...
1、listen fd,有新连接请求,触发epollIN。 2、对端发送普通数据,触发epollIN。 3、带外数据,只触发epollPRI。 4、对端正常关闭(程序里close(),shell下kill或ctr+c),触发epollIN和epollRDHUP,但是不触发epollERR和epollHUP。 关于这点,以前一直以为会触发epollERR或者epollHUP。:oops: 再man epoll_ctl看下后两个事件的说明,这两个应该是本端(server端)出错才触发的。 5、对端异常断开连接(只测了拔网线),...
epoll ET 模式下: 一开始以为对端read,会出发这端的可写事件发生,结果不是这样。 只有第一次连接到服务器端的时候会触发一次可写事件(epollOUT),没有触发可读(epollIN)。 触发可写事件,除去连接、关闭的时候,其他还有啥情况触发? 欢迎发言。 [ 本帖最后由 amoyppa 于 2008-9-3 17:31 编辑 ]