您
EPOLLRDHUP没有检测到同级关闭
EPOLLHUP(这表明套接字意外关闭,即通常是内部错误)。
使用它非常简单,只需将标志与您要赋予的其他标志“或”即可
epoll_ctl。因此,例如,代替
EPOLLINwrite
EPOLLIN|EPOLLRDHUP。
之后
epoll_wait,
if(my_event.events &EPOLLRDHUP)如果另一端关闭了连接(可能要关闭套接字),请执行随后要执行的操作。
请注意,从套接字读取时获得“零字节读取”结果 还 意味着另一端已经关闭了连接,因此您也应该始终检查该连接,以避免令人讨厌的意外(
FIN可能是 在
从网络唤醒 后 可能到达
EPOLLIN但 在 致电 之前
read,如果您处于ET模式,则不会再收到其他通知)。



