драсте всем и каждому.
вот кто бы на доступном русском языке (можно с матами)
объяснит мне назначение примитивов select() и poll().
Книги читал, но как то заумно. Объясните пжалста.И второе. Предположим нужен TCP сервер. При подключении клиента
основной процесс форкает потомка, который обслуживает данного клиента.
А можно ли что бы один процесс обслуживал всех и каждого?!
Как сделать? Где почитать?Не убивайте за такие вопросы, но все когда то начинали ;)
Спасибо.
>драсте всем и каждому.
>вот кто бы на доступном русском языке (можно с матами)
>объяснит мне назначение примитивов select() и poll().
>Книги читал, но как то заумно. Объясните пжалста.
>
>И второе. Предположим нужен TCP сервер. При подключении клиента
>основной процесс форкает потомка, который обслуживает данного клиента.
>А можно ли что бы один процесс обслуживал всех и каждого?!
>Как сделать? Где почитать?На все вопросы ответы найдёте в Стивенсе.
>драсте всем и каждому.
>вот кто бы на доступном русском языке (можно с матами)
>объяснит мне назначение примитивов select() и poll().
>Книги читал, но как то заумно. Объясните пжалста.
>
>И второе. Предположим нужен TCP сервер. При подключении клиента
>основной процесс форкает потомка, который обслуживает данного клиента.
>А можно ли что бы один процесс обслуживал всех и каждого?!
>Как сделать? Где почитать?
>
>Не убивайте за такие вопросы, но все когда то начинали ;)
>Спасибо.select - мощная функция, действительно описана в Стивенсе.
Если не охота с ней заморачиваться используй /etc/inetd.conf и /etc/services , т.е. возможности супер-сервера inetdhttp://qnx.org.ru/carticle1.html
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/)(это уже "для профессионалов")
То что "заумно" - так ведь в дороге никто кормить не обещал.
Сервера писать - это не пасочки лепить, тут надо разбираться :)
>драсте всем и каждому.
>вот кто бы на доступном русском языке (можно с матами)
>объяснит мне назначение примитивов select() и poll().
>Книги читал, но как то заумно. Объясните пжалста.
>Про poll ничего не скажу, не сталкивался. А вот select, в применении создания серверов, используется для проверки данных в дескрипторе. Т.е. когда создаешь слушающий сокет, тебе нужно как-то отловить момент, когда есть запрос от клиента (попытка подключения). Вот select и проверяет этот факт. А дальше ты либо fork'аешь новый процесс или создаешь поток или посылаешь далеко и надолго этого клиента или что-то еще.
>И второе. Предположим нужен TCP сервер. При подключении клиента
>основной процесс форкает потомка, который обслуживает данного клиента.
>А можно ли что бы один процесс обслуживал всех и каждого?!Можешь использовать pthreads (man pthreads или в книгах). Это потоки. Каждый запрос обслуживется в отдельном потоке, но в одном процессе. Я думаю, что можно и по другому организовать взаимодействие, насколько хватит фантазии и умения.
>Как сделать? Где почитать?
>
>Не убивайте за такие вопросы, но все когда то начинали ;)
>Спасибо.