当前位置: 技术问答>linux和unix
关于epoll的几个疑问
来源: 互联网 发布时间:2016-01-21
本文导语: 目前想做一个epoll的基本架构,但是有几个问题没有想清楚 1 如果某个连接断开(原因很多,可能是server主动把socket close掉了,可能是客户端close,还可能是断线了,等等),如果此时该socket正在epoll_wait中等待,那么epoll_wait会返...
目前想做一个epoll的基本架构,但是有几个问题没有想清楚
1 如果某个连接断开(原因很多,可能是server主动把socket close掉了,可能是客户端close,还可能是断线了,等等),如果此时该socket正在epoll_wait中等待,那么epoll_wait会返回该socket吗?返回的状态是什么?还是就死在epoll_wait里面了?
2 如果网络线程处于epoll_wait中,服务器如何退出?直接关闭listen socket,还是
关闭epoll?哪种办法可以让epoll_wait返回?返回后如何判断是否应该退出?
3 应用层如何发送数据?如果每次都把新的socket 设置好EPOLLOUT,那么epoll_wait返回后如果socket上没有数据发送,那岂不是就浪费了一次循环?能否避免这种请况?
1 如果某个连接断开(原因很多,可能是server主动把socket close掉了,可能是客户端close,还可能是断线了,等等),如果此时该socket正在epoll_wait中等待,那么epoll_wait会返回该socket吗?返回的状态是什么?还是就死在epoll_wait里面了?
2 如果网络线程处于epoll_wait中,服务器如何退出?直接关闭listen socket,还是
关闭epoll?哪种办法可以让epoll_wait返回?返回后如何判断是否应该退出?
3 应用层如何发送数据?如果每次都把新的socket 设置好EPOLLOUT,那么epoll_wait返回后如果socket上没有数据发送,那岂不是就浪费了一次循环?能否避免这种请况?
|
1 正常断开会被检测到
2 可以用信号
3 4你还是再多看点资料吧 ,充分理解一下epoll
2 可以用信号
3 4你还是再多看点资料吧 ,充分理解一下epoll
|
用libevent吧
google 一下
google 一下