The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Объясните начинающему"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Объясните начинающему"  
Сообщение от крендель on 18-Апр-06, 05:52 
драсте всем и каждому.
вот кто бы на доступном русском языке (можно с матами)
объяснит мне назначение примитивов select() и poll().
Книги читал, но как то заумно. Объясните пжалста.

И второе. Предположим нужен TCP сервер. При подключении клиента
основной процесс форкает потомка, который обслуживает данного клиента.
А можно ли что бы один процесс обслуживал всех и каждого?!
Как сделать? Где почитать?

Не убивайте за такие вопросы, но все когда то начинали ;)
Спасибо.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

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


1. "Объясните начинающему"  
Сообщение от chip email(ok) on 18-Апр-06, 11:26 
>драсте всем и каждому.
>вот кто бы на доступном русском языке (можно с матами)
>объяснит мне назначение примитивов select() и poll().
>Книги читал, но как то заумно. Объясните пжалста.
>
>И второе. Предположим нужен TCP сервер. При подключении клиента
>основной процесс форкает потомка, который обслуживает данного клиента.
>А можно ли что бы один процесс обслуживал всех и каждого?!
>Как сделать? Где почитать?

На все вопросы ответы найдёте в Стивенсе.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Объясните начинающему"  
Сообщение от nixsys on 18-Апр-06, 17:58 
>драсте всем и каждому.
>вот кто бы на доступном русском языке (можно с матами)
>объяснит мне назначение примитивов select() и poll().
>Книги читал, но как то заумно. Объясните пжалста.
>
>И второе. Предположим нужен TCP сервер. При подключении клиента
>основной процесс форкает потомка, который обслуживает данного клиента.
>А можно ли что бы один процесс обслуживал всех и каждого?!
>Как сделать? Где почитать?
>
>Не убивайте за такие вопросы, но все когда то начинали ;)
>Спасибо.

select - мощная функция, действительно описана в Стивенсе.
Если не охота с ней заморачиваться используй /etc/inetd.conf и /etc/services , т.е. возможности супер-сервера inetd

http://qnx.org.ru/carticle1.html

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Объясните начинающему"  
Сообщение от michelnok (ok) on 18-Апр-06, 21:30 
1. Книга Уолтона "Создание сетевых приложений в среде Linux. Руководство разработчика" (http://www.ozon.ru/context/detail/id/146260/)

(уровень и перевод слабые, но для начала пойдет)

2. Книга Стивенса "UNIX. Разработка сетевых приложений" (http://www.ozon.ru/context/detail/id/1390985/)
3. Книга Стивенса "Unix. Взаимодействие процессов" (http://www.ozon.ru/context/detail/id/1011815/)

(это уже "для профессионалов")

То что "заумно" - так ведь в дороге никто кормить не обещал.
Сервера писать - это не пасочки лепить, тут надо разбираться :)

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Объясните начинающему"  
Сообщение от SSuslov (ok) on 19-Апр-06, 10:21 
>драсте всем и каждому.
>вот кто бы на доступном русском языке (можно с матами)
>объяснит мне назначение примитивов select() и poll().
>Книги читал, но как то заумно. Объясните пжалста.
>

Про poll ничего не скажу, не сталкивался. А вот select, в применении создания серверов, используется для проверки данных в дескрипторе. Т.е. когда создаешь слушающий сокет, тебе нужно как-то отловить момент, когда есть запрос от клиента (попытка подключения). Вот select и проверяет этот факт. А дальше ты либо fork'аешь новый процесс или создаешь поток или посылаешь далеко и надолго этого клиента или что-то еще.

>И второе. Предположим нужен TCP сервер. При подключении клиента
>основной процесс форкает потомка, который обслуживает данного клиента.
>А можно ли что бы один процесс обслуживал всех и каждого?!

Можешь использовать pthreads (man pthreads или в книгах). Это потоки. Каждый запрос обслуживется в отдельном потоке, но в одном процессе. Я думаю, что можно и по другому организовать взаимодействие, насколько хватит фантазии и умения.

>Как сделать? Где почитать?
>
>Не убивайте за такие вопросы, но все когда то начинали ;)
>Спасибо.


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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