3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 249

Асинхронный RPC

28.05.2013, 20:30. Показов 4743. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно реализовать простейший RPC. Использование стандартный не позволяет религия
На стороне сервера идет обработка входящих команд, а так же отправка собственных событий.
Вся обработка - вызов обычных синхронных методов.

На стороне клиента создаются N потоков обработки. Каждый поток имеет уникальный идентификатор.
С ним он и отправляет запрос. Сервер ему отвечает с данным идентификатором.

Но сложность заключается в том, что сервер может не зависимо от времени посылать
собственные события с идентификатором созданного объекта обработки на стороне клиента.

Так вот и возникает вопрос, как на стороне клиента из приходящего замеса понять, что это ответ на посланную
команду. Нужно как-то дождаться ответа.

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

Тут и возникаю вопросы:
1. Обработку сетевого взаимодействия лучше делать в отдельном потоке ?
2. Как ожидать событие очереди ? Вычитывать и выбрасывать неподходящее ? Но тогда потеря событий...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.05.2013, 20:30
Ответы с готовыми решениями:

QString, std::string, curl и json-rpc
Добрый день. Возникла проблема следующего характера: Необходимо отправить на хост строку в формате json-rpc 2.0 Для генерации...

Поиск готового Remote Procedure Call (RPC) для Qt
Ребят, может кто - то встречал готовый нормальный фреймворк для Remote Procedure Call для QObject объектов? Ну что бы объекты Qt со всей...

Асинхронный QIODevice
Сделал обертку на основе QIODevice для работы с устройством. Работа реализована синхронно. Для этого были переопределены следующие...

21
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
29.05.2013, 11:39
Студворк — интернет-сервис помощи студентам
Dmitriy_M, Ну тут конечно желательно вести список используемых в данный момент чисел, что бы не дай бог не было совпадений. Но это в любом случае пример, как можно организовать. Хэш тоже подойдет, главное генерировать его так, что бы не совпал, а то хрен его знает что он будет отправлять, может одновременно и идентичные данные.

Добавлено через 8 минут
xbarmaglot, Тебе стоит начать изучение сокетов с более простых задач.... Тогда сложные пойдут значительно проще. Когда поймешь работу асинхронных механизмов, работу со структурами данных и классами, тогда решение данной задачи будет для тебя очевидно.
1
Эксперт С++
 Аватар для Maxim Prishchepa
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
29.05.2013, 22:27
QxtRPCPeer
QxtRPCService
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.05.2013, 22:27

Подскажите асинхронный модуль на базе QSql для чтения\записи в БД
Здравствуйте форумчане. Подскажите асинхронный модуль на базе QSql для чтения\записи в БД и получения уведомлений при изменении данных...

RPC в RPC и очередь выполнения
Крч... вот код: void OnConnectedToServer() { NetView.RPC("SendData", RPCMode.All, Convert.ToInt32(Network.player.ToString()),...

настройки RPC
Я начинающий сетевой администратор и программист. Никак не могу разобраться с RPC в Windows XP. Простейшие программы на Delphi с...

Имперсонация и RPC
Доброго времени суток. Помогите, пожалуйста, разобраться в коде. Мне очень повезло заполучить его от знакомых знакомых знакомых, но,...

RPC in Windows
Подскажите, что и ка нужно установить, чтобы работать с rpc под windows желательно с студией 2012.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

Новые блоги и статьи
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru