Клиентское приложение на C++ передаёт на HTTP-сервер данные - идентификатор клиента (чтобы обозначить присутствие), кадры с веб-камеры (по запросу), скриншоты рабочего стола (по запросу). Если можно было бы транслировать или камеру, или дисплей, то вопрос бы не стоял, но по заданию должна быть возможность одновременной трансляции.
Через клиентский сокет клиент вещает свой ID с информацией о том, может ли он использовать камеру (не у всех она есть). При ответе сервера с запросом на трансляцию камеры, десктопа, или и всего вместе клиент создаёт отдельный поток для камеры и отдельный для десктопа, так как интервалы трансляции кадров разные (если с камеры 6 кб кадр можно слать 20-25 раз в секунду, то 300 кб дисплей не более 2-х, чтобы сеть не перегружать).
И вот у меня творческий тупик из-за возможно неполного понимания работы сокетов: Можно ли для этих потоков использовать один сокет? Объёмы данных приличные, не будут они друг другу мешать на одном сокете при Content-Transfer-Encoding: binary
?
Не совсем понял что имеется в виду под отдельными потоками на клиенте, если поток это отдельное соединение к серверу, то у вас собственно и должно быть по сокету на конект/поток, ну а если все данные идут по одному каналу, то и нужен 1 сокет, то есть вам нужно отталкиваться от архитектуры клиента, а другого выбора то и нет. В любом случае у вас буден один мастер-сокет ждущий подключения, который будет создавать новые слэйв-сокеты на каждый конект. Если есть возможность создавать по сокету на "поток", то лучше так и делайте, select/epoll и т.п. в помощь. Среднестатистический ПК в состоянии работать с десятками тысяч сокетов одновременно, спокойно читая/отправляя гигабиты/с.
sitev_ru - что-то вы не понятное написали вообще, сколько одновременных запросов может отправлять "сайтик" зависит от браузера, по дефолту в современных браузерах это 6-8 одновременных запросов при HTTP /1.1.
Клиентское приложение на C++ - это socket-клиент, а HTTP-сервер - это socket-сервер. Это нормально, если несколько клиентов цепляются на один сервер...
Ответ: много socket-клиентов и один socket-сервер
P.S. Средненький сайтик можен отправлять HTTP-серверу до нескольких десятков или даже сотен запросов одновременно. Это всякие картиночки, js- скрипты и т.д.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имеется массив mass[] и число int qНеобходимо записать q по разрядам в массив
Задался вопросом, а зачем в данном примере io_service в разных потоках