Нужно написать сервер для приёма данных от разных по типу устройств с подтверждением приёма. Устройства присылают разные данные и алгоритм общения с каждым типом устройств разный. Из-за скудного знания с++ столкнулся с проблемой реализации. Я хочу пойти по следующему пути: запускаю служащий сервер. При приеме данных (первый пакет устройства - идентификатор типа устройства и его номер) созданный сокет отправляется в отдельный поток и дальше идёт обработка данных определённого устройства в отдельном потоке. Проблема: у меня есть класс с алгоритмом обработки пакетов идентификаторов и создание общего сокета. После создания экземпляра и приёма нужного пакета идентификатора не знаю как передать данный сокет в новый поток с новым алгоритмом обработки пакетов. Делаю это я для того, чтобы уменьшить длину передаваемых данных и снизить нагрузку на процессор (избавлюсь от множества условных операторов при каждом принятом пакете). Возможно у меня неправильная логика, поэтому прошу направить на правильный алгоритм. Моя реализация многопоточности: создаю экземпляр Qthread и с помощью MoveToThread передаю экземпляр с сокетом и обработки данных устройства. С потоками я ещё не до конца разобрался. Насколько я понял, в qt можно создать поток и поместить в него объект и только ловить сигналы от потока.
Здравствуйте! Описание несколько запутанное. Если я правильно понял, то архитектура приложения такова, что сначала вы парсите сообщение (определяя устройство) - в главном потоке и затем а зависимости от того какое устройство определилось запускает поток, которому передайте сокет. На мой взгляд это несколько не правильно. По-моему, следует создать многопоточный сервер, который на каждое соединение поднимает поток. Тогда получится, что вы сразу в потоке будете оперировать с сокетом как с объектом и не надо будет никуда его передавать. И уже в этом же потоке будете парсить сообщение и вызывать класс-обработки. На тему того как создать многопоточный сервер много информации в гугле, могу привести одну из первых собравшихся ссылок: https://m.habrahabr.ru/post/131472/
Ну а если я не правильно понял вопрос и проблема именно в реализации, а не в архитектуре, то тогда скиньте проблемный код
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имеется Framebuffer object с прикреплённой текстурой и буффером глубиныСначала происходит отрисовка в буффер, а потом этот буффер выводится на экран
Нужно сделать общим для нескольких процессов массив структурРешил сделать так: один из процессов выделяет общий блок памяти с помощью shmget,...
Можно ли в Qt из pro файла выдрать VERSION? И потом использовать его как константу например
При работе с SVG столкнулся с проблемой: не находится элемент tspan в строке