Отправка файловых данных нескольким клиентам? - PullRequest
2 голосов
/ 20 февраля 2012

Я пытаюсь найти лучший способ написать код передачи данных для системы клиент-сервер, которая обрабатывает несколько клиентов одновременно.

Я уже веду список клиентов, которые подключаются (кстати, я использую неблокирующую инфраструктуру NIO).

Разве это не дорого по производительности - перебирать каждого клиента с каждым проходом чтения / записи и записывать данные буфера в каждый канал? Есть ли лучший / более эффективный способ сделать это?

Я думал о том, чтобы разделить размер буфера в зависимости от количества клиентов. Это жизнеспособное решение?

1 Ответ

1 голос
/ 20 февраля 2012

Использование селекторов (как вы, кажется, делаете) действительно окупается, когда вы работаете с действительно большим количеством клиентов (и зачем оптимизировать для случая, когда у вас нет большое количество клиенты;)

Узким местом в такой системе редко является процессор, который выполняет итерацию, но все равно ввод / вывод, поэтому я не буду беспокоиться, если я окажусь там, где вы.

...