May 1, 2019, 12:13 p.m.

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

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

10% refund of hotel reservation amount on Booking
10% refund of hotel reservation amount on Booking
We offer a link with a 10% return on the amount of the order when booking a hotel through Booking
6

Добрый день.

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

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

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

0

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

0

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

0

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

0

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

1

Спасибо

0

Comments

Only authorized users can post comments.
Please, Log in or Sign up
m
May 19, 2019, 1:49 a.m.
mahhaki

Qt - Test 001. Signals and slots

  • Result:78points,
  • Rating points2
S
May 17, 2019, 1:14 p.m.
SunBro

Qt - Test 001. Signals and slots

  • Result:42points,
  • Rating points-8
b
May 17, 2019, 4:18 a.m.
banana

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

  • Result:57points,
  • Rating points-2
Last comments
May 20, 2019, 7:20 p.m.
Евгений Легоцкой

Добрый день! Вы не думали разместить репозиторий проекта на GitHub?
P.
May 18, 2019, 2:03 p.m.
PELMYACH .

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

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

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

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

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

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

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

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

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

For registered users on the site there is a minimum amount of advertising

EVILEG
About
Services
Join us
© EVILEG 2015-2019
Recommend hosting TIMEWEB