Мне нужно реализовать код сервера/клиента в C. Сервер должен иметь возможность принимать ровно четыре соединения в то время.
Я не могу заставить это работать. То, что я сделал до сих пор:
1. создать сокет
2. Установите его в неблокируемой: fcntl(sock,F_SETFL, O_NONBLOCK);
3. привязать его
4. слушать: listen(sock, 4);
клиент/серверная архитектура с несколькими клиентами
ту часть, которую я не являюсь совершенно уверен, как принять соединение с клиентом. Мой код выглядит примерно так:
while (1) {
if ((sockfd = accept(sock, (struct sockaddr *) &client_addr, &client_size)) < 0) {
perror("Error\n");
}
read(sockfd, &number, sizeof(number));
write(sockfd, &number, sizeof(number));
}
Когда я исполняю клиент и коды сервера, клиент, кажется, что-то писать в сокет, который сервер не получает и целые блоки исполнения. Каков правильный способ принимать соединения от нескольких клиентов?
Большое вам спасибо за подробное объяснение. Наконец-то я получил его на работу! – Maggie