1 мая 2019 г. 12:13

По какому принципу строится месенджер?

Добрый день. По какому принципу делаются чаты, к примеру, работающие в одной сети? Как одна программ может найти другую и обмениваться информацией?

Виртуальный хостинг со скидкой 10 процентов
Виртуальный хостинг со скидкой 10 процентов
EVILEG предлагает надёжный хостинг со скидкой 10% на виртуальный хостинг и 5% на VPS
6

Добрый день.

Ну самый простой и базовый вариант - это клиент-серверная архитектура. Есть сервер, который имеет какой-то адрес в сети и есть клиентские приложения, который знают адрес сервера. Они подключаются к серверу, получают информацию о других устройствах/клиентах и обмениваются через сервер сообщениями.

В принципе, даже здесь на сайте уже сделан некоторый задел для мессенджера. Например, я сегодня наконец-то добавил реалтайм в личные диалоги. Клиентами выступают браузеры, ну а сервером бэкенд сайта.

Или у вас были какие-то более детальные вопросы?

0

Спасибо. А как делают без сервера?

0

Кида вам архив, у меня там небольшая такая консольная прога, но там с сервером. Посмотрите как это работает в связке. Думаю что то найдете полезное. Sockets.rar Sockets.rar

0

Спасибо. У меня в детстве был чат, работающий без сервера. Вот и заинтересовался, как без сервера прогоаммы находят друг друга в сети и обмениваются данными.

0

Если без сервера, то можно использовать broadcast рассылку, через которую можно оповестить все устройства внутри сети о появлении нового клиента. При этом каждый клиент должен слушать определённый порт, который вы заложили в своём чате, и слушать данную broadcast рассылку. Если делать это на Qt, то думаю, что тут для прослушивания порта нужно у каждого клиента использовать QTcpServer, а рассылку broadcast сообщения делать через QTcpSocket или QUdpSocket. Broadcast сообщение - это сообщение для всей сети. Обычно Broadcast рассылку используют внутри сети, то есть на интернет чаты не рассчитывайте.

1

Спасибо

0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
m
19 мая 2019 г. 1:49
mahhaki

Qt - Тест 001. Сигналы и слоты

  • Результат:78баллов,
  • Очки рейтинга2
S
17 мая 2019 г. 13:14
SunBro

Qt - Тест 001. Сигналы и слоты

  • Результат:42баллов,
  • Очки рейтинга-8
b
17 мая 2019 г. 4:18
banana

C++ - Тест 003. Условия и циклы

  • Результат:57баллов,
  • Очки рейтинга-2
Последние комментарии
20 мая 2019 г. 19:20
Евгений Легоцкой

Добрый день! Вы не думали разместить репозиторий проекта на GitHub?
P.
18 мая 2019 г. 14:03
PELMYACH .

Спасибо большое! Вскоре буду разбираться!
18 мая 2019 г. 9:13
Евгений Легоцкой

Добрый день! Отнимать значение общего счётчика можно в деструкторе класса кнопки QDynamicButton::~QDynamicButton(){ ResID--;} При этом я бы ещё переустанавливал значения вс...
P.
14 мая 2019 г. 22:33
PELMYACH .

Здравствуйте!А не подскажите, как можно при удалении какой либо кнопки, у щётчика отнять значение?Дабы например четвёртой кнопке соответствовал ID 4, а не 5 скажем
6 мая 2019 г. 6:39
Евгений Легоцкой

Добрый день. Этот урок для Qt Quick Control версии 1, Вы используете вторую версию. Здесь style уже нет, кастомизацию можно делать уже или черещ соответствующие property или через ...
Сейчас обсуждают на форуме
21 мая 2019 г. 13:51
Евгений Легоцкой

Добрый день! Вот пример создания динамической библиотеки в Qt . Да, там показан один класс, но абсолютно ничего не меняется, сколько бы классов вы там не имели. Ва...
20 мая 2019 г. 8:43
Михаиллл

Кинул библиотеки в папку с проектом и в папку к компилируемым файлам.В файле проекта прописал так, но все равно выдает ту же ошибку QT += core gui networkgreaterThan(QT_MAJOR_VERSI...
20 мая 2019 г. 1:47
linq

Что вы понимаете под статической сборкой приложений? В какой среде?
19 мая 2019 г. 10:52
Евгений Легоцкой

Если честно, то мне нужно самому время потратить, чтобы глянуть это дело. Я использовал Flutter для разработки, а не Qt. Просто исходя из опыта, могу сказать, что по большей части всё на эмуля...
16 мая 2019 г. 23:08
BlinCT

Решил через indexOf сделать. Возвращает или номер позиции где нашел символ или строку или -1 если не найдено.

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы

EVILEG
О нас
Услуги
Присоединяйтесь к нам
© EVILEG 2015-2019
Рекомендует хостинг TIMEWEB