Russian Qt Forum
Ноябрь 27, 2024, 12:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Представление презентации по локальной сети  (Прочитано 3187 раз)
chu
Гость
« : Май 10, 2012, 11:53 »

Пишу программу для проведения онлайн презентаций. Точнее две: сервер и клиент.
Сейчас механизм следующий:
  • Запускается TCP сервер, который слушает все адреса на порту 2323 (номер порта взял из примера, как правильно выбрать порт? Сейчас и с этим портом все работает нормально, но на будущее хотелось бы знать принципы выбора порта)
  • Запускаются клиенты, устанавливают TCP соединение с сервером.
  • На сервере запускается презентация. При смене слайда широковещательно отправляет UDP пакет типа "кому передать новое изображение?" на порт 45454 (опять же взят из примера)
  • Клиент принимает данное сообщение и отправляет запрос через TCP сокет на передачу данных (QPixmap)
  • Сервер получает запрос, записывает в сокет QPixmap, клиент его получает и отображает.
Всё это работает, но меня беспокоит на сколько правильно это организованно.
Стоит ли сохранять соединение клиента с сервером на протяжении всей презентации или лучше подключаться только при передаче QPixmap'а, а потом сразу отключаться и ждать пакетов UDP?
Или лучше обойтись без UDP: после установки TCP соединения, посылать запрос на изображение, ждать ответа (несколько минут), получить ответ с данными изображения, отобразить изображение и сразу же послать следующий запрос и опять ждать?
Или обойтись без TCP. Расчленять изображения на куски и отправлять по UPD. На сколько это надежно?
Записан
V1KT0P
Гость
« Ответ #1 : Май 10, 2012, 12:01 »

Порт выбирай какой-хочешь, но лучше на википедии глянь свободные порты(порты которые не используют популярные программы).
QPixmap же вроде распакованные данные содержит, не жирно ли будет? Я бы либо в png либо в jpeg передавал бы.
Лучше держать открытым, ибо у тебя от сервера клиентам передается. А значит если клиент будет за NAT-ом то сервер не достучится до клиента.
Я бы на твоем месте использовал только TCP, он гарантирует целостность передаваемых данных, а UDP нет, а значит тебе придется самому это реализовывать.
Записан
chu
Гость
« Ответ #2 : Май 10, 2012, 12:07 »

Спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 20.