Экономичная связь между .NET Core и C с помощью доменных сокетов linux - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь создать конвейер сообщений через доменные сокеты Linux между .NET Core и чистым приложением C и решил использовать Apache Thrift для этого.

Проблема в том, что, используя их библиотеку .NET Core, я не могу найти, как создать TServerTransport поверх сокетов unix вместо сокетов ip.

Мне кажется, что реализация .NET Core работает только через TCPListener, который - если я правильно понимаю - привязан к сетевым сокетам. Я думаю, что я могу что-то упустить, однако.

1 Ответ

0 голосов
/ 01 сентября 2018

У библиотек Thrift .Net (ни Core, ни C #) еще нет транспорта сокетов домена UNIX. Отчасти это связано с отсутствием поддержки сокетов Unix Domain в .Net.

Вы можете использовать netcat или socat для передачи TCP-сокета localhost к доменному сокету: Перенаправление TCP-трафика на сокет домена UNIX под Linux

Или вы можете добавить транспортный сокет домена в Thrift и добавить его (что было бы здорово!). Вы могли бы по существу скопировать транспортный сокет Thrift TCP impl, а затем использовать информацию здесь, чтобы создать бит сокета домена (из Mono): Как подключиться к сокету домена Unix в .NET Core в C #

...