函数功能:epoll阻塞等待终端可读或者socket可读。
if(events[i].events&EPOLLIN)可以确定可读事件的发生,但是可读事件有两个,我用if(events[i].data.fd==fileno(stdin))确定输入可读,这个是可行的。但是用if(events[i].data.fd==socket)确定socket可读却行不通。网上一般都用if(evnets[i].data.fd==listenfd)确定连接的到来。可是我用同样的方法确定一个连接的可读却不行,不知道为什么?
第一次发帖,可能写得不清楚。。。。
3 个解决方案
#1
if(evnets[i].data.fd==listenfd)确定连接来这后,就用accept啊
#2
多谢回答,我的问题主要在于客户端上使用epoll,用epoll区分客户端上的连接可读还是客户端上的终端输入可读。并不是在于服务端上的监听,那里没问题,我就是想把epoll用在客户端上。
#3
多谢回答,我的问题主要在于客户端上使用epoll,用epoll区分客户端上的连接可读还是客户端上的终端输入可读。并不是在于服务端上的监听,那里没问题,我就是想把epoll用在客户端上。
#1
if(evnets[i].data.fd==listenfd)确定连接来这后,就用accept啊
#2
多谢回答,我的问题主要在于客户端上使用epoll,用epoll区分客户端上的连接可读还是客户端上的终端输入可读。并不是在于服务端上的监听,那里没问题,我就是想把epoll用在客户端上。
#3
多谢回答,我的问题主要在于客户端上使用epoll,用epoll区分客户端上的连接可读还是客户端上的终端输入可读。并不是在于服务端上的监听,那里没问题,我就是想把epoll用在客户端上。