gRPC построен поверх http / 2, и вы можете теоретически использовать любой тип соединения (например, доменные сокеты, именованные каналы) для связи с использованием gRPC, так что это, безусловно, возможно. На самом деле, по крайней мере, на ходу gRPC использует TCP по умолчанию.
Если требуется только, чтобы машина A общалась с использованием TCP-сокетов, но вы могли использовать внешние библиотеки, тогда использовать gRPC должно быть довольно легкобиблиотека языка по вашему выбору для реализации взаимодействия клиент-сервер поверх необработанных сокетов TCP.
С другой стороны, если вы не можете использовать библиотеку gRPC, хотя все ещевозможно, вам придется реализовать протокол gRPC самостоятельно, а возможно, и протокол http / 2, если вы не можете использовать какую-либо внешнюю библиотеку;Скорее всего, это будет большая работа, и вам лучше создать более простой протокол RPC для вашего случая использования.
РЕДАКТИРОВАТЬ
Обновленный вопрос проясняет требования. Если вам нужно использовать определенную библиотеку TCP, но вы можете использовать gRPC, я думаю, что сложность задачи действительно зависит от языка программирования.
Например, в go это будетпросто, как создание структуры оболочки, реализуйте для нее интерфейс net.conn
и используйте ее с опцией withDialer
при создании клиента. В c ++ похоже, что это будет сложнее и повлечет за собой реализацию пользовательского транспорта (хотя я не настолько знаком с API g ++ gRPC c ++, так что может быть более простой способ)