我正在研究一个项目,该项目需要使用命名管道的传统Windows应用程序与在Linux服务器上运行的新服务之间进行进程间通信。 Windows应用程序无法更改。有谁知道是否有可用的Linux库支持Windows命名管道?或者甚至更好,有人可以推荐他们用于此目的的图书馆吗?
答案 0 :(得分:12)
Windows和Linux命名管道是不同的动物。如果存在互操作解决方案,那么您将成为极少数用户之一。
您可能最好在Windows端编写代理以在命名管道和套接字之间进行映射,并将其连接到Linux端的套接字。这为您提供了一个有用的Linux网络接口,并从图片中删除了可能是命名管道互操作的世界。
如果我这样做,我会尝试在C#(托管代码)中生成一个简单的passthrough代理作为概念证明。如果吞吐量没有达到,则可以始终转换为本机代码(Win32 / C ++)。有一些示例C#代码here可能是一个有用的参考。
这是background on the nuances of Windows vs Linux named pipes。
答案 1 :(得分:3)
我认为Samba / Winbind包含高度相关的代码。但不确定它是如何重复使用的。