![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
Предисловие: есть сервер. надо написать к ниму клиента. клиент посылает запрос и получает ответ. запросов порядка 50шт + есть одна "команда" которую сервер может посылать клиенту спонтанно.
вот думаю как сделать все как можно компактнее, расширяемо и тп. пока только в голову пришло следующее:
Описал проблему конечно не очень в целов если, то вот так. Заранее благодарен! |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
1) выделить сетевой уровень в отдельный класс(ы)
2) выделить сборку\парсинг (сериализацию) пакетов в отдельный класс 3) организовать общение как RPC, отправка пакета - вызов метода сервера, прием пакета - вызов метода клиента Добавлено через 1 минуту и 24 секунды QT лучше asio? |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
||||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
AMPQ или, например XMPP используйте (протоколы) и не парьте мозги себе 8)
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
jonie, мозг придется попарить тк сервер уже давнго написан и существуют клиенты. просто нужно написать под новую платформу
|
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
для gui программистов - возможно для них-же вряд-ли на основе QtTCPServer получится написать высоконагруженный сервер, со всеми этими сигналами и слотами я уже молчу о том, что помимо TCP, существует UDP, ICMP помимо этого, asio, это не просто сетевая библиотека, а framework, для асинхронных приложений, на ее основе можно сделать все что угодно, от таймеров, до асинхронного мониторинга изменений в каталоге |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
Lazin, привет
я переодически почитываю Ваш блог два! boost не попадает под внимание тк платформы WinMobile(тесты буста не утишительны) & Symbian s60(вообще не видел тчо бы кто-то пытался что касается сервера - сервер реализован на яве и на qt никто ничего не планирует переписывать. Речь идет только о добавлении новых платфрм для клиентов. Касательно возможностей qt для клиента - да заглаза тк трафик минимальный, нагрузка тоже не большая. Вообщем QT это то что нужно для написания под мои требования. ЗЫ давай те по делу Это сообщение отредактировал(а) chaos - 18.8.2009, 12:43 |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
а по вашей реализации - вам нужен Pimpl, т.к. реализация сокетов на разных платформах разная. http://insidecpp.ru/patterns/pimpl_idiom/ -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
||||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
тогда нафига вы тут задаете вопросы по архитектуре? Где у вас архитектура?) -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Увы. Это не обо мне.
Думаю получится. В Qt они очень быстрые. Проверенно: http://forum.vingrad.ru/index.php?showtopi...t&p=1909927 -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
[offtopic]
да ну в любом случае, обычные функторы, которые используются в asio, будут работать во много раз быстрее, так как там не выполняется поиск слота, хотя это и не важно, а важно то, что QTCPServer - простой класс, для того, что-бы быстро набыдлокодить серверную часть, например, что-бы сделать web-морду для какого-нибудь приложения. В asio вообще нет класса, в названии которого было-бы слово server. Но там есть средства для того, что-бы создать любое сетевое приложение, с любой архитектурой. К примеру, используя boost.signals2 и boost.asio можно написать свой аналог QTcpServer, можно написать однопоточный сервер, многопоточный - thread per client или асинхронный сервер, все что душе угодно. [/offtopic] |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Слишком резко сказано. В Qt есть множество классов более низкого уровня. Ими так же можно пользоваться. http://doc.trolltech.com/4.5/qtnetwork.html Согласен. Опять же, все зависит от цели. Если целью ТС является как вы сказали "набыдлокодить", зна придется использовать QTCPServer. И на оборот. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
Lazin, повторное использование и универсализация теперь называются быдлокодингом? Или использование ООП-библиотек с оверхедом?
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |