The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Тематический каталог: Создание сервера для обработки событий..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Тематический каталог: Создание сервера для обработки событий..."  +/
Сообщение от auto_topic (ok) on 11-Апр-10, 01:08 
Обсуждение статьи тематического каталога: Создание сервера для обработки событий с использованием epoll (epoll linux select gcc)

Ссылка на текст статьи: https://www.opennet.ru/base/dev/epoll_intro.txt.html

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Создание сервера для обработки событий с использованием epol..."  +/
Сообщение от evgeny_t (ok) on 11-Апр-10, 01:08 
хотелось бы комментарии на русском, легче было бы читать
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Создание сервера для обработки событий с использованием epol..."  +/
Сообщение от Веслый мясник on 11-Апр-10, 02:24 
К моменту написания данного текста доступна (во всех смыслах) информация типа man epoll. Она включает в себя пример кода (более удобоваримый) и что-то вроде faq, "там все прекрасно описано"(цитата). Вместо солидного куска кода (зачем? каждая лишняя строка уменьшает кол-во дочитавших до конца) Было бы интересней сравнить poll, ppoll,epoll,select,pselect,... Ну, то есть тем,кому лень Стивенсов и маны читать.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Создание сервера для обработки событий с использованием epol..."  +/
Сообщение от Alexander (??) on 11-Апр-10, 15:23 
У Стивенса нет информации по epoll, хотя все остальные вызовы довольно неплохо описаны.  Код и описание на нормальном уровне, а вот вопрос своевременности... И еще момент: может сейчас лучше использовать libevent вместо низкоуровневых системных вызовов? И с переносимостью дела будут лучше обстоять.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Создание сервера для обработки событий с использованием epol..."  +/
Сообщение от Maksud email(ok) on 15-Апр-10, 17:59 
>У Стивенса нет информации по epoll, хотя все остальные вызовы довольно неплохо
>описаны.  Код и описание на нормальном уровне, а вот вопрос
>своевременности... И еще момент: может сейчас лучше использовать libevent вместо низкоуровневых
>системных вызовов? И с переносимостью дела будут лучше обстоять.

Точно, надо было сразу на libevent писать, как то не сообразил, перепишу как только освобожусь, а эту версию можно оставить для истории. ;-)

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

4. "Создание сервера для обработки событий с использованием epol..."  +/
Сообщение от Rubber Cthulhu on 15-Апр-10, 10:25 
При закрытии соединения клиент не удаляется из epoll'а.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Создание сервера для обработки событий с использованием epol..."  +/
Сообщение от Maksud email(ok) on 15-Апр-10, 17:50 
В документации (http://linux.die.net/man/4/epoll) написано что при закрытии дескриптора, он автоматически удаляется из epoll.

QUESTIONS AND ANSWERS (from linux-kernel)
Q6
    Will the close of an fd cause it to be removed from all epoll sets automatically?
A6
    Yes.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "Создание сервера для обработки событий с использованием epol..."  +/
Сообщение от Maksud email(ok) on 15-Апр-10, 18:04 
Спасибо за комментарии, учту все: на русском, кратко и сжато, с libevent.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Создание сервера для обработки событий с использованием epol..."  +/
Сообщение от Fervent email on 08-Май-10, 09:22 
Thanks a lot)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Создание сервера для обработки событий с использованием epol..."  +/
Сообщение от Аноним (??) on 10-Июн-10, 17:18 
реально epoll появилась уже давно и не для кого не секрет)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "."  +/
Сообщение от Everard on 07-Апр-11, 09:17 
Еще не плохо было бы сделать обработку EPOLLERR в цикле, т.к. если этого не сделать, то программка может упасть.
Например, так:

// ...
for(int i = 0; i < epoll_events_count ; i++)
{
    if(events[i].events & EPOLLERR)
    {
        // обработка ошибки, например:
        close(events[i].data.fd);
        clients_list.remove(events[i].data.fd);
        continue;
    }
    // ...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру