Первое что интересует - это изменяет ли она посылаемые в нее наборы сокетов? В MSDN это явно не написано, хотя вроде бы подразумевается. Хотя я по поведению своей программы что-то не замечаю чтобы наборы менялись при заметных для select событиях. Если таки select оставляет наборы такими же как в нее были посланы, то вообще какой смысл имеет информация о количестве элементов, удовлетворяющих условиям ее срабатывания? Ведь останется по-прежнему неизвестно, какие именно сокеты нужно опрашивать в данный момент. Я смотрел примеры работы с select, но там в нее посылался только один набор с одним-единственным элементом. Я же бы хотел посылать набор, в который входят сокеты сервера и всех клиентов и обрабатывать события вроде появления новых клиентов и запросов ими сервиса в одном цикле/потоке. Как вообще такое должно делаться?
Посмотрите книгу "эффективное программирование для tcp-ip", автора точно не помню, может быть Йон Снейдер, так там описывается кратко реализация select для виндовс и унекс.
Спасибо за ссылку. Только в этой книге как мне показалось, совсем немного написано про select. Зато я здесь на сайте статью нашел "Руководство Beej по сетевому программированию, используя интернет-сокеты", в ней все что мне надо было написано. Кстати, код который я написал раньше почти такой же как и в статье, просто я его тестил, соединяясь "Оперой", а она много чего лишнего походу посылает
Select возвращает списки сокетов готовых для чтения/записи/ошибочных. С Самими сокетами она ничего не делает.