обрабатывать соединения. Тоесть есть listen_fd, который неблокирущий. Использую poll. Потом как всегда нахожу listen_fd в массиве структур pollfd и тд. Вопрос в том, как я принимаю потом все соединения клиентов, если мне хочется не только recv сделать, но и отправить на клиент что то также неблокирующе. Тоесть есть:
do
{
new_sd = accept(listen_sd, NULL, NULL);
if (new_sd < 0)
{
if (errno != EWOULDBLOCK)
{
perror(" accept() failed");
end_server = TRUE;
}
break;
}
printf(" New incoming connection - %d\n", new_sd);
fds[nfds].fd = new_sd;
fds[nfds].events = POLLIN;
nfds++;
} while (new_sd != -1);
Здесь ставится fds[nfds].events = POLLIN;
а что если я хочу отследить момент, когда я смогу не только читать с сокета, а и писать в него? Или может я концепцию эту еще не до конца понял... Подскажите, пожалуйста
POLLIN|POLLOUT если правильно помню
Обсуждают сегодня