Как обойти механизм IPC, если клиент и сервер работают в одном контексте процесса в gRPC?C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Как обойти механизм IPC, если клиент и сервер работают в одном контексте процесса в gRPC?

Сообщение Гость »


В проекте, над которым я работаю (в системе на базе Linux), у меня есть сервер, на котором может быть несколько клиентов. Все это происходит на одной машине, поэтому я использую доменные сокеты Unix в качестве grpc IPC. механизм. Теперь один из клиентов работает в том же контексте процесса, что и сервер. В данном случае я хочу иметь возможность обойти механизм IPC, поскольку он просто добавляет накладные расходы и здесь не требуется. Я разрабатываю это на C++. Я вижу упоминание о inProcessChannel здесь, в их документации, но как мне на самом деле его создать и использовать в своем варианте использования? Похоже, он присутствует только в пространстве имен grpc::Server.

Я планировал позволить клиенту и серверу первоначально взаимодействовать через стандартный согласованный канал gRPC в долларах США, чтобы клиент мог запрашивать у сервера свой PID и сверяться со своим собственным PID, и если он совпадает, я хочу иметь возможность использовать inProcessChannel для связи (насколько я понимаю, это позволит обойти любые накладные расходы IPC.

Меня поразило, как я могу создать inProcessChannel со стороны клиента. Я не смог найти способ сделать это через grpc::CreateChannel. Означает ли это, что мне нужно создать его на сервере, передать канал клиенту, создать с ним заглушку и общаться?

Может кто-нибудь дать мне несколько советов?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»