Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: демон на линуксе
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
romez777
Приветствую.

Изучаю написание сетевого демона под линукс. Сейчас мой демон имеет структуру:

Код
...
sd = socket();
bind(sd, ... );

if ( listen(sd, 5) == -1)
{ ... }

for (;;) {

ns = accept(sd, ...);
pid=fork();
if (pid == 0)       /* child */
{
 close(sd);
 ...
 recv();
 ...
 close(ns);
 exit(0);   /* exit status of child */
}

close(ns);     /* parent */

}


Вопрос такой: при этой архитектуре будут ли у демона серьезные ограничения по числу одновременно обрабатываемых запросов? Если да, то что нужно менять в структуре приложения? Поможет ли здесь select()/poll() ?

Спасибо!
teoretic
Я понимаю, что это низко, но
1 почитай доки....linux ими славится
2 этот вопрос лучше задавать на www.linuxforum.ru
romez777
Цитата(teoretic @ Aug 21 2005, 21:28)
Я понимаю, что это низко, но
1 почитай доки....linux ими славится
2 этот вопрос лучше задавать на www.linuxforum.ru
*


Приветствую.

Перечитал много док, статей, везде рецепт один - использовать треды. Сейчас сравниваю.
ghost_gluck
Цитата(romez777 @ Aug 5 2005, 14:23)
Приветствую.


Вопрос такой: при этой архитектуре будут ли у демона серьезные ограничения по числу одновременно обрабатываемых запросов? Если да, то что нужно менять в структуре приложения? Поможет ли здесь select()/poll() ?

Спасибо!
*


1. Да будет, т.к. очередь у тебя на 5 коннекций. В listen число 5 меняешь, на количество нужное тебе.
2. Есть множество варинтов написания у тебя fork - один из простых, но расход памяти большой, т.к. fork создает копию родитлея и запускает в нем потомка, соотвественно размер в памяти увеличится на размер родителя. Через threads - будет получше в целях экономии памяти, да и по времени.
Совет: в качестве примера и оценки враианта смотри здесь хттп://club.shelek.com/viewart.php?id=73
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.