Вы можете рассмотреть ØMQ .Это кроссплатформенная библиотека обмена сообщениями, которая, помимо прочего, «автоматически» обрабатывает проблемы с подключением (включая повторное подключение в случае сбоев).Есть привязки на многих языках, и библиотека czmq предоставляет хороший высокоуровневый интерфейс C для многих распространенных применений ØMQ.
Вы можете легко использовать шаблон запроса-ответа для RPCframework, но когда вы читаете руководство , вы можете обнаружить, что более подходящими являются другие шаблоны.
Я нашел RPC framework , построенный поверх ØMQ, нопоскольку вы, очевидно, используете C ++, это, вероятно, вам не поможет (кроме как в учебных целях).Смотри также этот вопрос .Возможно, вы могли бы довольно легко свернуть свое собственное, если хотите.
Лицензия ØMQ - "LGPLv3 +", которая в основном является LGPL с исключением статического связывания. czmq движется к MPLv2, поэтому я не удивлюсь, если ØMQ вскоре последует этому примеру.Согласно сообщению от создателя ØMQ, MPLv2 очень похож на лицензию "LGPLv3 +", но более приемлем для корпоративных юристов.
Вы также можете рассмотреть повышение сериализации для вашего кода интерфейса,Мы использовали czmq (включая zbeacon для автоматического обнаружения узлов) вместе с расширенной сериализацией, и она работает очень хорошо.В прошлом я использовал XML-RPC , и я очень предпочитаю ØMQ из-за функциональности обработки соединений, которую он предлагает.