c ++ IPC через streambuf в Windows - PullRequest
       25

c ++ IPC через streambuf в Windows

1 голос
/ 10 сентября 2011

У меня есть объект сообщения, сериализованный как поток двоичных данных (это может быть любой std :: streambuf), и я хочу передать его другому процессу.Ключевым моментом является то, что серверное приложение должно обрабатывать много клиентов, соединение должно быть асинхронным (из-за множества клиентов) и двунаправленным (внутри может быть реализовано два отдельных соединения).Сообщения имеют переменную длину и должны быть поставлены в очередь.Какой метод IPC я должен выбрать для этого?Есть ли простой способ передачи потокового буфера через приложения?Скорость не критична, но будет хорошо, если приложение не будет слишком долго блокировать приложение.Все будет выполняться локально под Windows (я нацелена на XP и новее), поддержка сети не требуется.

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

1 Ответ

1 голос
/ 10 сентября 2011

Вы можете использовать именованные каналы в Windows.См. MSDN ref: http://msdn.microsoft.com/en-us/library/aa365150%28v=vs.85%29.aspx

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

...