@s2sk

Можно по-подробнее насчет функции select в сокетах?

Привет.

Я понял что функция select работает так (про винду говорим) - я беру структуру fd_set и заполняю ее сокетами-клиентами (через функцию FD_SET) - вызываю функцию select с передачей туда этой структуры - после вызова select в этой структуре остаются только сокеты которые готовы к чтению/записи/обработке ошибок. Теперь какие у меня возникли вопросы: структура fd_set имеет внутри себя массив куда загоняются все сокеты и этот массив имеет 64 ячейки. Это получается мне нужно функцию select вызывать (кол-во клиентов / 64) раз? Или можно как-то сразу всех клиентов (больше 64) загнать в структуру? И получается что после select в структуре остались клиенты которые готовы к чтению/записи я просто их через цикл с recv/send прогоняю? А какие отличия recv/send от recvfrom/sendto?
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
какие отличия recv/send от recvfrom/sendto?

recvfrom возвращает адрес отправителя полученных данных. Имеет смысл с протоколами без соединения, типа UDP. sendto позволяет отправлять с одного сокета на разные адреса, опять же, имеет смысл с протоколами без соединения.
В man про это написано.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы