Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удаленный вызов. детали, реализация, архитектура, у темы новое название! 
:(
    Опции темы
mes
Дата 4.11.2010, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Код

struct auth_ctrl {

      void login () { p_impl->login(); }
      void logout () { .. }

      void on_connect (local::conect const&);
      void on_welcome (stc::welcome const&);
  private:
      ...       
};

struct auth_iface 
{
      void login () { p_impl->login(); }
      void logout () { .. }

      auth_iface (auth_ctrl & c) : p_impl (c) {}

 private:      
      auth_ctrl       & p_impl;
};


struct client
{
         auth_iface       auth () { return _auth; }
   
   private:
         auth_ctrl       _auth;
};


Это сообщение отредактировал(а) mes - 4.11.2010, 02:04


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 4.11.2010, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



mes, я не понимаю для чего нам это, что дает, и как использовать smile 
PM WWW   Вверх
mes
Дата 4.11.2010, 02:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



ну если Вы настаиваете на продолжение в этой же теме, чтож давай те тут..

эта часть к которой мы сейчас подошли целиком зависит от вашей задачи.. если это простой чат (пусть даже многокомнатный, одного контролера будет достаточно, и сигналы будут не нужны, достаточно rpc_receiver.. 
ну так что там у вас, и в каком виде должен предоставлять это клиент юзеру ?



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 4.11.2010, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  4.11.2010,  02:14 Найти цитируемый пост)
ну если Вы настаиваете на продолжение в этой же теме, чтож давай те тут..

я не настаиваю. я просто не могу понять, о чем Вы хотите мне сказать smile 

Цитата(mes @  4.11.2010,  02:14 Найти цитируемый пост)
эта часть к которой мы сейчас подошли целиком зависит от вашей задачи.. если это простой чат (пусть даже многокомнатный, одного контролера будет достаточно, и сигналы будут не нужны, достаточно rpc_receiver.. 

о чем идет речь?

Цитата(mes @  4.11.2010,  02:14 Найти цитируемый пост)
ну так что там у вас, и в каком виде должен предоставлять это клиент юзеру ?


конкретно, у меня задача написания сетевой игры. далее, проект выложу на гуглкод. помимо этого, в этом проекте я вижу большой потенциал при использовании его для ПОЛНОГО разделения на реализацию и ГУЙ любого проекта. даже если программа рассчитана работать на локальной машине.

что мне нужно от протокола:
1. скрыть как на клиенте так и на сервере все сетевое взаимодействие. т.е. чтоб пользователю даже не пришло в голову, что методы вызываются с другой стороны провода. и на оборот.
2. нужна возможность создавать/удалять обработчики по запросам любой из сторон.

это Вы хотели узнать?

Это сообщение отредактировал(а) boostcoder - 4.11.2010, 02:25
PM WWW   Вверх
mes
Дата 4.11.2010, 02:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  4.11.2010,  01:22 Найти цитируемый пост)
это Вы хотели узнать?

не совсем..
ну вот Ваша игра состоит из трех частей.. 
1. сетевой протокол и его  обслуживание..(что мы разбирали в этой теме)
2. сохранение состояния обмена / сессия  (к теме о контролерах)
3. отображение..

как реализовать 2й слой зависит от того толстый клиент или тонкий ... 
и  если клиент тонкий, то его можно просто объединить с 3м... 



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 4.11.2010, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  4.11.2010,  02:34 Найти цитируемый пост)
зависит от того толстый клиент или тонкий ...

эм.. это чё? smile 
Цитата(mes @  4.11.2010,  02:34 Найти цитируемый пост)
сохранение состояния обмена / сессия  (к теме о контролерах)

поясните плиз. может мне и это нужно, но я еще этого не осознал smile

Добавлено через 2 минуты и 24 секунды
Цитата(mes @  4.11.2010,  02:34 Найти цитируемый пост)
толстый ... или тонкий ... 

тролли вспомнились smile

Добавлено через 3 минуты и 14 секунд

тяжко Вам со мной приходится...

PM WWW   Вверх
mes
Дата 4.11.2010, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  4.11.2010,  01:37 Найти цитируемый пост)
эм.. это чё?  

если данные сохраняются и обрабатываются на стороне клиента, это толстый клиент
а если получает всегда готовую информацию, то тонкий.. 
понятие естественно размытое.. 



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 4.11.2010, 02:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  4.11.2010,  02:43 Найти цитируемый пост)
если данные сохраняются и обрабатываются на стороне клиента, это толстый клиент
а если получает всегда готовую информацию, то тонкий.. 
понятие естественно размытое.. 

нет. клиент никаким данными не владеет. только посылает команды, получает ответы, и что-то выполняет с ответами.

Добавлено через 27 секунд
значит клиент тонкий smile 
PM WWW   Вверх
mes
Дата 4.11.2010, 02:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  4.11.2010,  01:37 Найти цитируемый пост)
оясните плиз. может мне и это нужно, но я еще этого не осознал 

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

Добавлено через 56 секунд
Цитата(boostcoder @  4.11.2010,  01:44 Найти цитируемый пост)
нет. клиент никаким данными не владеет

под клиентом в данном случае имелась ваша программа, а не класс клиент.. smile для уточнения 


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 4.11.2010, 02:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  4.11.2010,  02:45 Найти цитируемый пост)
ну что должна уметь Ваша прога ? ну с сервером общаться и отдавать ему данные это понятно.. а что дальше ? выводить в консоль, сохранять обрабатывать их определенным образом, чтоб в любой момент можно было их отобразить или что то другое ?

программа никакими данными не владеет. т.к. игра сетевая многопользовательская, если клиент по каким-то причинам "отключается/повисает" - то эту игру он продолжить не сможет. т.к. остальные участники его ждать не должны.

Добавлено через 31 секунду
Цитата(mes @  4.11.2010,  02:45 Найти цитируемый пост)
под клиентом в данном случае имелась ваша программа, а не класс клиент..

да-да. клиентская программа.
PM WWW   Вверх
mes
Дата 4.11.2010, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  4.11.2010,  01:48 Найти цитируемый пост)
программа никакими данными не владеет. т.к. игра сетевая многопользовательская, если клиент по каким-то причинам "отключается/повисает" - то эту игру он продолжить не сможет. т.к. остальные участники его ждать не должны.

Вы опять не в ту сторону гнете.. речь идет не о запоминании данных между сессиями.. а о запоминании их в процессе..
ну например, раз это игра, ходы он должен запоминать ? должен ли делать проверку на допустимость хода ?
должен ли делать какие либо другие проверки, относящиеся к логике игры ?

Добавлено через 1 минуту и 38 секунд
вот кстати: толстый клиент всегда может проверить валиден ли ход, так как он помнит и чей ход, и какие ходы уже были сделаны.. 
а тонкий о правильности узнает только после отправки на сервер.. 



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 4.11.2010, 03:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  4.11.2010,  02:53 Найти цитируемый пост)
ну например, раз это игра, ходы он должен запоминать ? должен ли делать проверку на допустимость хода ?
должен ли делать какие либо другие проверки, относящиеся к логике игры ?

нет.
процесс игры:
1. начало.
2. одному из игроков позволено выполнить действие. к примеру Вам.
3. Вы выполняете действие.
4. в ответ, сервер в вашей программе изменяет состояние гуя(блокирует контролы, и т.д.)
5. другому игроку позволяется выполнить действие.
6. он выполняет.
7. изменившиеся данные игры рассылаются всем игрокам для обновления гуя.

и так по кругу.



но более точно я смогу ответить днем. т.к. саму игру пишет коллега. я только сервер/БД/протокол.

Добавлено @ 03:01
Цитата(mes @  4.11.2010,  02:53 Найти цитируемый пост)
вот кстати: толстый клиент всегда может проверить валиден ли ход, так как он помнит и чей ход, и какие ходы уже были сделаны.. 
а тонкий о правильности узнает только после отправки на сервер.. 

да. все понял. клиент тонкий.

Это сообщение отредактировал(а) boostcoder - 4.11.2010, 03:01
PM WWW   Вверх
mes
Дата 4.11.2010, 03:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  4.11.2010,  02:00 Найти цитируемый пост)
7. изменившиеся данные игры рассылаются всем игрокам для обновления гуя.

гуй у вас "подсвечивает" ходы ? ведет историю ? зачит надо запоминать.. только решить надо, запоминать в гуи, или  все ж отделить гуи  от логики..

Добавлено через 1 минуту и 2 секунды
как результат, будет ли гуи работать напрямую с протоколом, или все ж будет фасад отделяющий данные от способа их добычи... 


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 4.11.2010, 03:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  4.11.2010,  03:03 Найти цитируемый пост)
гуй у вас "подсвечивает" ходы ? ведет историю ?

нет. в клиентской программе есть отдельный функционал для просмотра логов игр/сессий. эти данные берутся из БД по запросу клиента.

Добавлено через 13 минут и 9 секунд
по поводу тонкого/толстого клиента вопрос закрыт? можно задавать другие вопросы? smile 
PM WWW   Вверх
mes
Дата 4.11.2010, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  4.11.2010,  02:09 Найти цитируемый пост)
по поводу тонкого/толстого клиента вопрос закрыт?

ок толщину клиента можно отложить, пока не столкнетесь поближе..

а также ждем когда доберетесь до user_context , там то Вам контроллеров не избежать (если конечно не хотите неповоротливого монолита), но там нужны только контролеры, а ифейсы нет..

Добавлено через 14 секунд
Цитата(boostcoder @  4.11.2010,  02:09 Найти цитируемый пост)
можно задавать другие вопросы? 

можно smile



--------------------
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0685 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.