Пишу программу для проведения онлайн презентаций. Точнее две: сервер и клиент.
Сейчас механизм следующий:
- Запускается TCP сервер, который слушает все адреса на порту 2323 (номер порта взял из примера, как правильно выбрать порт? Сейчас и с этим портом все работает нормально, но на будущее хотелось бы знать принципы выбора порта)
- Запускаются клиенты, устанавливают TCP соединение с сервером.
- На сервере запускается презентация. При смене слайда широковещательно отправляет UDP пакет типа "кому передать новое изображение?" на порт 45454 (опять же взят из примера)
- Клиент принимает данное сообщение и отправляет запрос через TCP сокет на передачу данных (QPixmap)
- Сервер получает запрос, записывает в сокет QPixmap, клиент его получает и отображает.
Всё это работает, но меня беспокоит на сколько правильно это организованно.
Стоит ли сохранять соединение клиента с сервером на протяжении всей презентации или лучше подключаться только при передаче QPixmap'а, а потом сразу отключаться и ждать пакетов UDP?
Или лучше обойтись без UDP: после установки TCP соединения, посылать запрос на изображение, ждать ответа (несколько минут), получить ответ с данными изображения, отобразить изображение и сразу же послать следующий запрос и опять ждать?
Или обойтись без TCP. Расчленять изображения на куски и отправлять по UPD. На сколько это надежно?