日期:2014-05-16  浏览次数:20732 次

关于epoll的服务器模型
如果我服务器建立一个和客户端 client_fd的长链接。
我先初始化 client_fd的事件为EPOLLIN&EPOLLOUT.也就是既可以读,又可以写,然后我while(),问题来了


while()
{
如果是客户端写事件,就是EPOLLOUT,我写完之后,然后就等待从客户端读下一次数据,但是这个时候,服务器的while循环,一直告诉我客户端可以写了,却不能读进客户端的请求,不知道为什么,我之前已经设置了这个fd,既可以写又可以读了啊。
除非我在 每次写完之后,再设置一下 client_fd事件为可读才行, 求解答,难道初始化 一个事件既可以写又可以读不行?
}

------解决方案--------------------
EPOLLIN&EPOLLOUT ?


一般来说这种标志都是用 or的吧,才能正确设置相应的位。


EPOLLIN|EPOLLOUT 这样写才对?


提问题,最好把代码给放出来,这样别人看的仔细的一点,也可以测试学习一下,呵呵