-
- Это стандартная модель. Select это диспетчер событий. Он слушает
события и в зависимости от типа события исполняет что надо. Поэтому
остальные операции не блокируют. В данном случае сначала появляется
событие что кто то стучит в socket а потом отрабатывается функция
accept. Проверка типа события if (FD_ISSET(master_socket,
&readfds)). Точно также если, что то пришло по сокету то
проверка другая для отработки read if (FD_ISSET( sd ,
&readfds)) . Если бы эти framer(102 знак., 22.04.2022 07:17, ссылка)
- В тех букварях, которые читал, стандартно accept() с ожиданием
установки соединения, и только потом на соединении уже ожидание с
помощью select(). Спасибо за пример по ссылке тоже. Подскажите,
вызов poll() нормально сейчас использовать? А то под Win та же ХР
не поддерживала пишут. Или лучше как новичку в теме использовать
старое-доброе? - Dingo(22.04.2022 09:46)
- Select и Poll работают почти так же. Select использует битовую маску и имеет ограничение до 1024 дескрипторов. Poll использует таблицу структур pollfd. Если надо, чтобы работало под Win вот файл из того же примера сервера для Win. Сделайте условную компиляцию в зависимости от системы. Это еще один плюс использования плюсов. framer(192 знак., 22.04.2022 10:47, ссылка, ссылка)
- В тех букварях, которые читал, стандартно accept() с ожиданием
установки соединения, и только потом на соединении уже ожидание с
помощью select(). Спасибо за пример по ссылке тоже. Подскажите,
вызов poll() нормально сейчас использовать? А то под Win та же ХР
не поддерживала пишут. Или лучше как новичку в теме использовать
старое-доброе? - Dingo(22.04.2022 09:46)
- Это стандартная модель. Select это диспетчер событий. Он слушает
события и в зависимости от типа события исполняет что надо. Поэтому
остальные операции не блокируют. В данном случае сначала появляется
событие что кто то стучит в socket а потом отрабатывается функция
accept. Проверка типа события if (FD_ISSET(master_socket,
&readfds)). Точно также если, что то пришло по сокету то
проверка другая для отработки read if (FD_ISSET( sd ,
&readfds)) . Если бы эти framer(102 знак., 22.04.2022 07:17, ссылка)