当前位置: 技术问答>linux和unix
epoll LT模式 如何检测客户端关闭
来源: 互联网 发布时间:2017-01-14
本文导语: epoll LT模式,不是ET模式, 如何检测客户端关闭啊? epoll_event evs[20]; for (;;) { int n = epoll_wait(_epfd, evs, 20, -1); for (int i = 0; i != n; i++) { if (evs[i].events & EP...
epoll LT模式,不是ET模式, 如何检测客户端关闭啊?
epoll_event evs[20];
for (;;) {
int n = epoll_wait(_epfd, evs, 20, -1);
for (int i = 0; i != n; i++) {
if (evs[i].events & EPOLLIN) {
// client close之后,这里收不到 信号???
}
if (evs[i].events & EPOLLOUT) {
io_event &e = _io_events.find(e_key(evs[i].data.fd, io_event::writable))->second;
(*(e.handler))(e);
}
if (evs[i].events & EPOLLERR) {
io_event &e = _io_events.find(e_key(evs[i].data.fd, io_event::error))->second;
(*(e.handler))(e);
}
if (evs[i].events & EPOLLHUP) {
cout