У меня есть ситуация, когда мне приходится обрабатывать несколько живых потоков UDP на сервере.
У меня есть два варианта (как мне кажется)
Один разъем:
1) Прослушивание одного порта на сервере и получение данных от всех клиентов на одном и том же порту и создание потоков для каждого клиента для обработки данных до тех пор, пока клиент не прекратит отправку.
Здесь только один порт используется для получения данных и количество потоков, используемых для обработки данных.
несколько розеток:
2) Клиент запросит открытый порт с сервера для отправки данных, а приложение отправит открытый порт клиенту и откроет новый поток, прослушивающий порт для получения и обработки данных. Здесь для каждого клиента будет уникальный порт для отправить данные.
Я уже реализовал способ узнать, какой пакет исходит от какого клиента в UDP.
У меня более 1000 клиентов и 60 КБ данных в секунду, которые я получаю.
Есть ли проблемы с производительностью при использовании вышеуказанных методов
или есть ли какой-нибудь эффективный способ справиться с этим типом задачи в C?
Спасибо
Raghu