epoll и установить сразу несколько интересов - PullRequest
0 голосов
/ 18 марта 2011

Интересно, что я не могу найти никакого обсуждения по этому вопросу, а не некоторые старые слайды с 2004 года.

ИМХО, текущая схема использования epoll() требует чего-то как epoll_ctlv() звонок. Хотя этот призыв не имеет смысла для типичные HTTP веб-серверы, это имеет смысл в игровом сервере, где мы отправляем одни и те же данные нескольким клиентам одновременно. Это не кажется трудным для реализации, учитывая тот факт, что epoll_ctl() уже существует. Есть ли у нас какие-либо причины для отсутствия этой функциональности? Возможно, нет окно оптимизации есть?

1 Ответ

0 голосов
/ 20 марта 2011

Как правило, вы можете использовать epoll_ctl() для добавления и удаления сокетов из набора epoll, когда клиенты подключаются и отключаются, что происходит не очень часто.

Отправка одних и тех же данных в несколько сокетов скорее потребуетверсия send() (или write()), которая принимает вектор файловых дескрипторов.Причина, по которой этот не был реализован, вероятно, заключается в том, что никто с достаточным интересом к этому не сделал (конечно, есть много тонких проблем - что, если каждый дескриптор файла назначения может только успешнонаписать другое количество байтов).

...