Что именно делает неблокирующий блок сокетов? Возможная опасность использования epoll() в режиме, запускаемом по фронту ⇐ Linux
Что именно делает неблокирующий блок сокетов? Возможная опасность использования epoll() в режиме, запускаемом по фронту
Предположим, мы хотим написать сервер для обработки нескольких клиентов с помощью epoll в режиме Edge-Triggered.
При использовании epoll() в режиме, запускаемом по границе, всякий раз, когда сервер получает событие EPOLLOUT или EPOLLIN, он должен записать или читайте до тех пор, пока не получите EWOULDBLOCK или EAGAIN.
Предположим, клиент подключается и отправляет ОЧЕНЬ длинное сообщение. Теперь сервер должен читать его до тех пор, пока не получит EWOULDBLOCK или EAGAIN.
Может ли сервер быть уверен, что EWOULDBLOCK или EAGAIN получен через некоторое разумное время и не прочитает гигабайты данных от этого клиента , пока все остальные клиенты ждут?
Это не просто вопрос «да» или «нет». Я с нетерпением жду возможности понять, как эта блокировка контролируется на уровне ОС.
Предположим, мы хотим написать сервер для обработки нескольких клиентов с помощью epoll в режиме Edge-Triggered.
При использовании epoll() в режиме, запускаемом по границе, всякий раз, когда сервер получает событие EPOLLOUT или EPOLLIN, он должен записать или читайте до тех пор, пока не получите EWOULDBLOCK или EAGAIN.
Предположим, клиент подключается и отправляет ОЧЕНЬ длинное сообщение. Теперь сервер должен читать его до тех пор, пока не получит EWOULDBLOCK или EAGAIN.
Может ли сервер быть уверен, что EWOULDBLOCK или EAGAIN получен через некоторое разумное время и не прочитает гигабайты данных от этого клиента , пока все остальные клиенты ждут?
Это не просто вопрос «да» или «нет». Я с нетерпением жду возможности понять, как эта блокировка контролируется на уровне ОС.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
XPresent в пользовательском приложении, запускаемом с помощью менеджера композиции.
Anonymous » » в форуме Linux - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-