В Линуксе, через Epoll обрабатываю сразу много TCP сокетов. На сокеты подписываюсь так: epoll_ctl(,,EPOLLIN | EPOLLOUT | EPOLLRDHUP | EPOLLET).
Всё отлично, но иногда приходят сообщения с такими флагами:
0C=EPOLLOUT+EPOLLERR или
1C=0С+EPOLLHUP или
1D=1С+EPOLLIN
Самое главное я не смог потворить такие ситуации.
Я не знаю, что они означают и как их обрабатывать в таких сочетаниях, т.е. когда одновременно EPOLLOUT+EPOLLERR, т.е. и ошибка и в сокет можно писать.
Я закрывают сокет в таких ситуациях, но сомневаюсь что правильно делаю.