FD_SET(server_sockfd, &set);
это означает, что значение! номера server_sockfd попадает в структуру FD_SET под именем set, тогда смысл после accept делать FD_SET (client_sockfd, &set), ведь этот индекс уже в структуре?count = select (n+1, &set, ...
делает проверку на чтение - т.е. сюда попадает и пришедшие новые соединения и пришедшие пакеты на существующие соединения. а при переборе вызывается if (FD_ISSET (i, &set) > 0). Тогда получается что нужно вести учет какие индексы портов (дескрипторы, как если я правильно понимаю термин) уже подключены и делать проверку соответственную.
Я понимаю, что ядро само устанавливает "линк" дескриптора порта в прогамме к самому порту. А индекс дескрипторов - единый, тоесть если я создам с прогаммы соединение, то дескриптор клиентского порта при переборе будет мешать мне без собственной индексации (где буду знать, что подклчать, что читать, а что закрыть)
Спасибо за ответы. Каждый новый ответ пророждает уйму новых вопросов :)