Russian Qt Forum
Ноябрь 25, 2024, 16:36
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Клиент-сервер
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Клиент-сервер (Прочитано 2863 раз)
kedi
Гость
Клиент-сервер
«
:
Октябрь 23, 2012, 12:22 »
Добрый день, прошу сильно не пинать, с програмированием QT(да и вообще) на вы.
Задача написать клиент серверное приложение, сеть ненадёжна.
*сетевая логика сводится к тому что клиент регистрируется на сервере и затем слушает сервер на события адресованные ему, так же у клиента есть возможность "отрегистрироваться".
*сервер регистрирует клиентов и при необходимости отсылает им разные "события".
*сервер может сам (по своей инициативе) отсоединить(отрегистрировать) клиента.
*клиентов будет до 1000.
почитал я про сокеты, серверы (тсп), потоки.
вопросы собственно как это грамотнее и эфективнее реализовать? как на сервере организовать работу сокетов для соединения с клиентами.
-стоит ли при регистрации каждого клиента создавать отдельный поток с сокетом соединения? и держать это соединение открытым всё время пока клиент зарегистрирован?
-если не использовать потоки на сервере. тупо в контейнере держать список зарегистрированых клиентов, и при необходимости отправки события устанавливать соединение и закрывать его после отправки. При обвалах сети как клиенту знать зарегистрирован он на сервере или нет и наоборот? не накладно ли получится пинговать сервер каждому клиенту скажем каждые 30 сек.
если сморозил ****, поправтье.
какие есть книги или материалы по реализации клиент-серверных архитектур, решений?
Записан
Bepec
Гость
Re: Клиент-сервер
«
Ответ #1 :
Октябрь 23, 2012, 12:37 »
Если бы ты читал ты бы знал, что:
1) поток на 1 клиента - бред.
2) остальное возможно.
3) пинговать сервер не затратно для каждого клиента.
PS клиент-серверная архитектура и есть архитектура
Записан
kedi
Гость
Re: Клиент-сервер
«
Ответ #2 :
Октябрь 23, 2012, 13:40 »
То есть лучше держать контейнер из сокетов клиетов?
иметь постоянную связь с каждым клиентом или устанавливать при необходимости?
Записан
Bepec
Гость
Re: Клиент-сервер
«
Ответ #3 :
Октябрь 23, 2012, 13:56 »
1-2 потока на приём, 1-2 потока на посыл. А насчёт постоянно или прерывать уже сам решай.
Записан
Impuls
Гость
Re: Клиент-сервер
«
Ответ #4 :
Октябрь 24, 2012, 10:40 »
Сейчас пишу точно такую же программу. Мне нужно отслеживать подключения с одним логином на нескольких ПК в сети с доменом.
Решил сделать примерно так:
Каждый пользователь раз в N-секунд шлет широковещательную UDP датаграмму со своим логином и tcp портом для подключения сервера. Сервер принимает эти данные, обрабатывает как ему вздумается и шлет команды на TCP сокет клиенту (благо все данные для подключения уже известны). Когда обмен данными с клиентом будет закончен - сервер рвет TCP соединение и продолжает работать дальше в штатном режиме.
Вот как-то так.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...