2012-05-04 4 views
0

Мой вопрос о сетях с привязкой к событиям на основе epoll, основанных на событиях, - это то, как клиентское соединение с поставщиком услуг epoll остается открытым? Почему не происходит соединение на стороне клиента, когда на стороне сервера нет постоянного приемника?epoll/non blocking event driven IO

Как можно закрыть клиентское соединение (Keep-Alive on POST), когда сервер обработал запрос и предположительно перешел на него.

+0

Вы говорите об [этой эпосе] (http://www.kernel.org/doc/man-pages/online/pages/man4/epoll.4.html)? Потому что, если вы, я вообще не понимаю ваш вопрос. – Mat

+0

Клиент может подключиться к веб-серверу, который управляется epoll, и в некоторых случаях клиентское соединение может оставаться открытым в течение длительного времени. Как клиентское соединение может оставаться открытым (Keep-Alive на POST), когда сервер обработал запрос и предположительно перешел на него. – Pradeep

ответ

0

Ваше предположение неверно: на сервере все еще есть постоянный приемник.

Использование epollselect, или просто блокирование read/write сек ничего на сетевой стороне вещей не изменится. По-прежнему существует постоянная сессия TCP (в случае, если вы заявляете). Серверный процесс по-прежнему имеет файловый дескриптор, открытый в этом соединении.
epoll - это «просто» API, который позволяет ядру сигнализировать о том, что есть что делать с этим соединением эффективным, асинхронным образом.

+0

А ... Я вижу. Таким образом, бремя количества соединений не устраняется. Проблема остается в том, сколько таких соединений можно открыть для машины. – Pradeep

+0

Вы правы, использование epoll или не изменяет количество соединений, которые должен поддерживать сервер. – Mat