使用 linux 域套接字在 .NET Core 和 C 之间进行 Thrift 通信

Thrift communication between .NET Core and C using linux domain sockets

我正在尝试在 .NET Core 和纯 C 应用程序之间的 Linux 域套接字上创建消息管道,并决定为此使用 Apache thrift。

问题是使用他们的 .NET Core 库我似乎无法找到如何通过 unix 套接字而不是 ip 套接字创建 TServerTransport

在我看来,.NET Core 实现只能通过 TCPListener 工作——如果我理解正确的话——绑定到网络套接字。但是,我想我可能会遗漏一些东西。

Thrift .Net 库(既不是 Core 也不是 C#)还没有 UNIX 域套接字传输。这部分是由于 .Net 中缺少 Unix 域套接字支持。

您可以使用 netcat 或 socat 将本地主机 TCP 套接字通过管道传输到域套接字: Redirecting TCP-traffic to a UNIX domain socket under Linux

或者您可以向 Thrift 添加域套接字传输并贡献它(这会很棒!)。您基本上可以复制 Thrift TCP 套接字传输实现,然后使用此处的信息创建域套接字位(来自 Mono):