- Объясните начинающему, chip, 11:26 , 18-Апр-06 (1)
>драсте всем и каждому. >вот кто бы на доступном русском языке (можно с матами) >объяснит мне назначение примитивов select() и poll(). >Книги читал, но как то заумно. Объясните пжалста. > >И второе. Предположим нужен TCP сервер. При подключении клиента >основной процесс форкает потомка, который обслуживает данного клиента. >А можно ли что бы один процесс обслуживал всех и каждого?! >Как сделать? Где почитать? На все вопросы ответы найдёте в Стивенсе. - Объясните начинающему, nixsys, 17:58 , 18-Апр-06 (2)
>драсте всем и каждому. >вот кто бы на доступном русском языке (можно с матами) >объяснит мне назначение примитивов select() и poll(). >Книги читал, но как то заумно. Объясните пжалста. > >И второе. Предположим нужен TCP сервер. При подключении клиента >основной процесс форкает потомка, который обслуживает данного клиента. >А можно ли что бы один процесс обслуживал всех и каждого?! >Как сделать? Где почитать? > >Не убивайте за такие вопросы, но все когда то начинали ;) >Спасибо. select - мощная функция, действительно описана в Стивенсе. Если не охота с ней заморачиваться используй /etc/inetd.conf и /etc/services , т.е. возможности супер-сервера inetd http://qnx.org.ru/carticle1.html - Объясните начинающему, michelnok, 21:30 , 18-Апр-06 (3)
- Объясните начинающему, SSuslov, 10:21 , 19-Апр-06 (4)
>драсте всем и каждому. >вот кто бы на доступном русском языке (можно с матами) >объяснит мне назначение примитивов select() и poll(). >Книги читал, но как то заумно. Объясните пжалста. >Про poll ничего не скажу, не сталкивался. А вот select, в применении создания серверов, используется для проверки данных в дескрипторе. Т.е. когда создаешь слушающий сокет, тебе нужно как-то отловить момент, когда есть запрос от клиента (попытка подключения). Вот select и проверяет этот факт. А дальше ты либо fork'аешь новый процесс или создаешь поток или посылаешь далеко и надолго этого клиента или что-то еще. >И второе. Предположим нужен TCP сервер. При подключении клиента >основной процесс форкает потомка, который обслуживает данного клиента. >А можно ли что бы один процесс обслуживал всех и каждого?! Можешь использовать pthreads (man pthreads или в книгах). Это потоки. Каждый запрос обслуживется в отдельном потоке, но в одном процессе. Я думаю, что можно и по другому организовать взаимодействие, насколько хватит фантазии и умения. >Как сделать? Где почитать? > >Не убивайте за такие вопросы, но все когда то начинали ;) >Спасибо.
|