реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> демон на линуксе
romez777
сообщение Aug 5 2005, 11:23
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



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

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

Код
...
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() ?

Спасибо!
Go to the top of the page
 
+Quote Post
teoretic
сообщение Aug 21 2005, 18:28
Сообщение #2





Группа: Новичок
Сообщений: 4
Регистрация: 20-07-05
Пользователь №: 6 946



Я понимаю, что это низко, но
1 почитай доки....linux ими славится
2 этот вопрос лучше задавать на www.linuxforum.ru
Go to the top of the page
 
+Quote Post
romez777
сообщение Aug 23 2005, 01:46
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



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


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

Перечитал много док, статей, везде рецепт один - использовать треды. Сейчас сравниваю.
Go to the top of the page
 
+Quote Post
ghost_gluck
сообщение Aug 23 2005, 13:46
Сообщение #4





Группа: Участник
Сообщений: 13
Регистрация: 10-11-04
Пользователь №: 1 097



Цитата(romez777 @ Aug 5 2005, 14:23)
Приветствую.


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

Спасибо!
*


1. Да будет, т.к. очередь у тебя на 5 коннекций. В listen число 5 меняешь, на количество нужное тебе.
2. Есть множество варинтов написания у тебя fork - один из простых, но расход памяти большой, т.к. fork создает копию родитлея и запускает в нем потомка, соотвественно размер в памяти увеличится на размер родителя. Через threads - будет получше в целях экономии памяти, да и по времени.
Совет: в качестве примера и оценки враианта смотри здесь хттп://club.shelek.com/viewart.php?id=73
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 14:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016