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

Поиск:

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


pattern`щик
****


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

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



Цитата(mes @  4.11.2010,  20:04 Найти цитируемый пост)
это серверу решать

зачем серверу что-то решать? тем более, если от его решения ничего не зависит. если метод возвращает void - значит бессмысленно что-то возвращать клиенту.

Добавлено через 1 минуту и 20 секунд
Цитата(mes @  4.11.2010,  20:11 Найти цитируемый пост)
этим и хороша ассинхронность

если метод ничего не возвращает, то и не за чем ждать ответа. это тоже асинхронность.

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


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


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

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



Цитата(boostcoder @  4.11.2010,  19:11 Найти цитируемый пост)
зачем серверу что-то решать? тем более, если от его решения ничего не зависит. если метод возвращает void - значит бессмысленно что-то возвращать клиенту. 

что значит метод возвращает void ? приведите пример типа сообщения который подходит под это.. 



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


pattern`щик
****


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

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



так же, к примеру, если метод в декларации имеет возвращаемый тип, но при вызове этого метода мы не ждем результата - было бы правильно не ожидать ответа. это тоже логично.
есть идеи как это реализовать? smile 
PM WWW   Вверх
mes
Дата 4.11.2010, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



такое ощущение, что вы никогда не писали более менее сложного ГУИ.. если я прав то жаль, этот опыт вам бы сейчас пригодился.. 


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


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


pattern`щик
****


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

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



Цитата(mes @  4.11.2010,  20:14 Найти цитируемый пост)
приведите пример типа сообщения который подходит под это.. 

клиент вызывает чтоб проинформировать сервер что он тут:
Код

sever.ping(); // без аргументов. и ничего не возвращает.

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


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


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

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



сервер должен вернуть понг



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


pattern`щик
****


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

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



Цитата(mes @  4.11.2010,  20:17 Найти цитируемый пост)
такое ощущение, что вы никогда не писали более менее сложного ГУИ.. а жаль этот опыт вам бы пригодился.. 

да. не писал.
а какой опыт я бы приобрел?

Добавлено через 22 секунды
Цитата(mes @  4.11.2010,  20:18 Найти цитируемый пост)
сервер должен вернуть понг

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


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


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

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



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

Добавлено через 1 минуту и 9 секунд
и обратно то же по такой же схеме..  т.е  это сообщение  из серии s <=> c

Добавлено через 2 минуты и 1 секунду
Цитата(boostcoder @  4.11.2010,  19:18 Найти цитируемый пост)
а какой опыт я бы приобрел?

строить программу основываясь на событиях, а не на линейном выполнении..



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


pattern`щик
****


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

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



Цитата(mes @ 4.11.2010,  20:20)
пинг посылается не только для уведомления что клиент тут, а также для проверки, что сервер тут.. ну и как косвенный эффект подсчет времени связи..

Добавлено @ 20:21
и обратно то же по такой же схеме..  т.е  это сообщение  из серии s <=> c

Добавлено @ 20:22
Цитата(boostcoder @  4.11.2010,  19:18 Найти цитируемый пост)
а какой опыт я бы приобрел?

строить программу основываясь на событиях, а не на линейном выполнении..

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


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


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

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



Цитата(boostcoder @  4.11.2010,  19:24 Найти цитируемый пост)
т.е. Вы считаете, что "безответные" вызовы вообще не имеют права быть? но это не правильно. в данном конкретном случае они есть.

я считаю как раз наоборот.. что все вызовы являются безответными.. (в классическом процедурном понимании) т.е. void



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


pattern`щик
****


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

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



хорошо.
как Вам такой вариант:
Код

// сигнатура
// string call(arg);

string res = server.call(...); // ждем ответа
server.call(...); // метод возвращает значение, но нам оно не нужно! каким образом можно это реализовать?


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


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


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

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



Цитата(boostcoder @  4.11.2010,  19:28 Найти цитируемый пост)
хорошо.
как Вам такой вариант:

плохо..
мы не знаем что нам ждать в текущий момент от сервера.. он может прислать не ответ на вопрос..
 
Цитата(boostcoder @  4.11.2010,  19:28 Найти цитируемый пост)

как? 

зачем ?! мы с этого начали этот топик и вроде ж пришли к выводам..

Добавлено через 2 минуты и 22 секунды
каждый вызов  имеет таблицу колбяков..  если мы будем обрабатывать это синхронно, то создадим жесткие ограничения для клиента /сервера, да и сами утонем в поддержке этого чуда.. 



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


pattern`щик
****


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

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



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

я не говорю о полной синхронности. я привел пример, когда в зависимости от использования результата вызова, он может быть синхронным и асинхронным.
PM WWW   Вверх
mes
Дата 4.11.2010, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(boostcoder @  4.11.2010,  19:47 Найти цитируемый пост)
я не говорю о полной синхронности. я привел пример, когда в зависимости от использования результата вызова, он может быть синхронным и асинхронным. 

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



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


pattern`щик
****


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

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



Цитата(mes @  4.11.2010,  20:50 Найти цитируемый пост)
т.е. послали запрос и встали в режим ожидания, пока не придет нужный ответ.. 

да. если нам нужен результат - ждем. иначе нет. и сервер ничего не возвращает.

Цитата(mes @  4.11.2010,  20:50 Найти цитируемый пост)
а если между делом придет что то другое, то что делать ?

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

Добавлено через 44 секунды
mes, мне это кажется нормальным и логичным. не понимаю что именно Вас так настораживает..
PM 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.0688 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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