Добавить новую переменную, возможно, max_fd
, которая отслеживает дескриптор файла с наибольшим номером в наборе.Тогда вы можете сделать это:
request_list getIncomingRequests()
{
fd_set master_set_copy = master_set;
request_list requests;
int socket_count = select(max_fd + 1, &master_set_copy, nullptr, nullptr, nullptr);
for (int req_fd = 0; req_fd <= max_fd; ++req_fd)
{
if (!FD_ISSET(req_fd, &master_set_copy))
continue;
sockaddr_in req_addr;
getsockname(req_fd, (sockaddr*)&req_addr, &addr_len);
requests.push_back(request(req_fd, this->fd, req_addr));
}
return requests;
}
Но вам, вероятно, лучше использовать poll
вместо select
.