Russian Qt Forum

Qt => Работа с сетью => Тема начата: kibsoft от Январь 10, 2010, 16:43



Название: Чат без выделенного сервера..
Отправлено: kibsoft от Январь 10, 2010, 16:43
Посмотрел в примерах Qt чат, но не очень понимаю как это работает...Как я понял: на каждом компе запускается своя копия сервера и клиента, таким образом нужда в выделении сервака отпадает..так ли это? И еще, порт объекта сервера выбирается автоматически или должен быть определенный? Если он выбирается автоматически, как клиент с другого компа найдет его? Сканировать все IP и все порты? Если можно, объясните общий принцип :)


Название: Re: Чат без выделенного сервера..
Отправлено: xokc от Январь 10, 2010, 17:50
Чат без сервера работает через широковещательный протокол UDP, т.е. пакеты рассылаются ВСЕМ узлам сети. Поэтому и не нужны тут сканирования чего-бы то ни было.


Название: Re: Чат без выделенного сервера..
Отправлено: kibsoft от Январь 10, 2010, 18:37
Извиняюсь, немного не так выразился...чат в смысле приватный...т.е. есть список пользователей, с каждым ведется отдельный разговор..


Название: Re: Чат без выделенного сервера..
Отправлено: kibsoft от Январь 10, 2010, 18:59
Кажется понял..За объектом сервака резервируется рандомный порт, а затем по UDP рассылается пакет с портом этого сервака..UDP порт в примере 45000...


Название: Re: Чат без выделенного сервера..
Отправлено: vet от Январь 12, 2010, 20:16
Я смог реализовать клиента и сервера отдельно. Сервер может быть связан с несколькими клиентами. Пользователь сам задает адрес и номер порта. Правда у меня нет приватных списков. Все сообщения в одном окне. Писал в студии 2008. Я начинающий пользователь Qt, поэтому в качестве основы брал пример из книги М. Шлее "Qt4. Провессиональное программирование на C++" и переделал под себя. Программа работает нормально. Кому интересно могу показать исходники :)