Как обходить возврат функции epoll_wait?

Здравствуйте. Вот решил программировать сеть на низкоуровневой библе из "коробки" библиотек от linux! Вроде все складывается, но есть один момент, когда из слушающих сокетов ловиться соединение(accept), оно добовляется в набор для отслеживания еполл_вайтом и тут же возвращается с событием 4. Как? По логике если ты ко мне подключился, я жду от тебя "новостей" с цифрой 1. Вообще не понимаю этот баг, или у меня в мозгах какой то клин. Конечно игнорю это событие, но системный вызов работает, как от этого избавиться если допустим у меня запланированы частые обрывы tcp-соединения, этож пипец как накладно и не как не стыкуется с логикой, где я промахнулся?
  • Вопрос задан
  • 76 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
когда из слушающих сокетов ловиться соединение(accept), оно добовляется в набор для отслеживания еполл_вайтом и тут же возвращается с событием 4. Как? По логике если ты ко мне подключился, я жду от тебя "новостей" с цифрой 1.

4 -- это EPOLLRDHUP? По логике, если ты принял входящее соединение, а другая сторона на нём сделала shutdown(…, SHUT_WR), чтобы данные могли идти только от тебя к клиенту, то такое поведение ты и получишь.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы