![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
DeathKnight |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 28.3.2010 Пользователь №: 1573 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
может быть, есть у кого-нибудь пример "клиент-серверной системы передачи сообщений".
все, что нашел в нете, слишком сложно. тот же qutim. извините за беспокойство. за ранее спасибо. |
|
|
kwisp |
![]()
Сообщение
#2
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
DeathKnight,
а стандартные примеры поставляемые с библиотекой почему не смотрим? и + поищи по форуму QTcpSocket QTcpServer QUdpSocket и проч.... для разнообразия. |
|
|
ViGOur |
![]()
Сообщение
#3
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Посмотри: Network Examples
|
|
|
DeathKnight |
![]()
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 28.3.2010 Пользователь №: 1573 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
kwisp, смотрел, просто этого мне не хватает для представления, как разработать программу.
буду ковырять. спс. |
|
|
kwisp |
![]()
Сообщение
#5
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
DeathKnight,
раз не хватает стандартных примеров -- задавай конкретные вопросы. этот вопрос кроме как ссылки на примеры уж прости ничего не заслуживает. может быть, есть у кого-нибудь пример "клиент-серверной системы передачи сообщений".
все, что нашел в нете, слишком сложно. тот же qutim. извините за беспокойство. за ранее спасибо. |
|
|
DeathKnight |
![]()
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 28.3.2010 Пользователь №: 1573 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
хм.. тогда так. я придумал сделать на сервере:
-простой гуи для контроля состояния. -сам tcpserver отправить в отдельный поток -для каждого сокета пользователя также отдельный поток(клиент как наследник qthread с указателем на qtcpsocket) -в объекте сервера qmap(id и ссылка на объект клиент-поток-сокет) для определения кому пересылать пришедшее сообщение - и класс сообщения, в начале которого quint, где лежит величина всего объекта, а дальше параметры(либо id от кого и кому и сообщение, либо служебные сообщения(авторизация и т.п.)) оправдан такой подход или это будет довольно сложно для реализации? пишу курсовой. |
|
|
kwisp |
![]()
Сообщение
#7
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
DeathKnight,
тут вопрос, на сколько много соединений ты хочешь обслуживать и как много данных передавать. если объемы данных не большие и соединений не много то..... если кол-во соединений большое и объемы данных велики то всё намного сложнее по-моему. если по-простому я бы попробовал сделать так. никаких потоков. -- сервер слушает порт(для гибкости порт можно передавать через параметр командной строки или гуй или файл конфигурации). как только кто-то стучится соединиться ему выделяется новый сокет с новым портом и далее общение с клиентом уже через новый сокет. -- клиент стучится на сервер:порт(заданый через гуй, командную строку, файл конфигурации) ему выделяют порт и он уже по этому порту общается сервером. -- класс сообщения с заголовком quint, вроде нормально у меня сделано так же пока сбоев не было. прочти соседние темы на счет затыков с размерами сообщений, перемешении байтов, корректном вычитывании из сокета. пробуй. пиши код сюда. П.С. зачем тебе QMap для хранения идентификаторов клиентов если не важен порядок используй QHash или вектор., можно и обычным массивом обойтись если извесно максимальное колличество клиентов. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 15.6.2025, 7:29 |