Что делать, если accept () не работает с EAGAIN или EWOULDBLOCK (неблокирующий ввод / вывод)? - PullRequest
0 голосов
/ 05 мая 2019

Я пишу серверную программу на C ++.Я использую неблокирующий сокет POSIX с poll ().Когда сокет сервера доступен для чтения, мой код начинает принимать () соединения.Когда accept () завершается неудачно с EAGAIN или EWOULDBLOCK, выполнение возвращается к poll ().

В примерах, которые я видел в Интернете, если accept () завершается неудачно с не EAGAIN или EWOULDBLOCK, они завершают работу сервера.Я задаюсь вопросом, должен ли я действительно сделать это.Когда accept () терпит неудачу, вероятно, клиент сделал что-то неопределенное;Является ли это причиной для прекращения работы моей серверной программы?

Подводя итог, мой вопрос заключается в том, как мне справиться с этим при сбое accept () без EAGAIN или EWOULDBLOCK.

Спасибо.

...