ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
1201925 Топик полностью
framer (22.04.2022 07:17, просмотров: 353) ответил Dingo на Любопытно, как вы сделали! Вызываете сначала select(), а потом по событию уже читаете активный сокет accept() ! "А что, так можно было?!"
Это стандартная модель. Select это диспетчер событий. Он слушает события и в зависимости от типа события исполняет что надо. Поэтому остальные операции не блокируют. В данном случае сначала появляется событие что кто то стучит в socket а потом отрабатывается функция accept. Проверка типа события if (FD_ISSET(master_socket, &readfds)). Точно также если, что то пришло по сокету то проверка другая для отработки read if (FD_ISSET( sd , &readfds)) . Если бы эти 

функции вызвать без select то они блокировали бы поток.

П.С. Не касается это функций bind и listen.

https://www.ibm.com/docs/en/i/7.1