Межпроцессное взаимодействие по сети в C ++ - PullRequest
1 голос
/ 26 сентября 2010

Я использую C ++ для разработки серверной части игры, в которой несколько серверов должны взаимодействовать друг с другом, используя шаблон «Издатель / подписчик». Каждый сервер подписывается на несколько событий на разных серверах. Все серверы расположены в одной сети, поэтому задержка и потеря пакетов должны быть очень низкими. Межсерверное взаимодействие должно быть максимально эффективным, поскольку каждую секунду происходит много событий.

Есть ли какие-нибудь библиотеки, которые я могу использовать для этой цели?

Любая помощь очень ценится

Ответы [ 2 ]

1 голос
/ 26 сентября 2010

Вы должны иметь возможность комбинировать Boost.ASIO (для ввода-вывода асинхронных сокетов) с Boost.Signals (для шаблона Observer) или Boost.Signals2 (потокобезопасная версия Boost.Signals) для достижения желаемого.

Существует простой пример, показывающий, как это может работать здесь .Обратите внимание, что для этого используется оболочка Boost.Signal, но вы поняли идею.

1 голос
/ 26 сентября 2010

По сути, вы говорите о библиотеке сокетов. Это отличается от IPC, который относится к межпроцессному взаимодействию между двумя или более процессами на одном и том же компьютере - в отличие от сети. Сетевое взаимодействие требует программирования сокетов, поэтому вам, вероятно, нужна хорошая высокопроизводительная библиотека сокетов. Boost.ASIO - очень хорошая библиотека переносимых сокетов C ++, которая предоставляет сокеты TCP и UDP.

...