C++ Linux中的Windows命名管道支持

C++ Linux中的Windows命名管道支持,c++,windows,linux,network-programming,named-pipes,C++,Windows,Linux,Network Programming,Named Pipes,我正在研究一个项目,该项目需要在使用命名管道的遗留Windows应用程序和Linux服务器上运行的新服务之间进行进程间通信。无法更改windows应用程序。有人知道是否有支持Windows命名管道的Linux库可用吗?或者更好的是,有人能推荐一个他们用于此目的的库吗?Windows和Linux命名管道是不同的动物。如果存在互操作解决方案,那么您将是极少数用户中的一员 您最好在Windows端编写一个代理来映射命名管道和套接字,并将其连接到Linux端的套接字。这在Linux端为您提供了一个有用的

我正在研究一个项目,该项目需要在使用命名管道的遗留Windows应用程序和Linux服务器上运行的新服务之间进行进程间通信。无法更改windows应用程序。有人知道是否有支持Windows命名管道的Linux库可用吗?或者更好的是,有人能推荐一个他们用于此目的的库吗?

Windows和Linux命名管道是不同的动物。如果存在互操作解决方案,那么您将是极少数用户中的一员

您最好在Windows端编写一个代理来映射命名管道和套接字,并将其连接到Linux端的套接字。这在Linux端为您提供了一个有用的网络接口,并从图片中删除了命名管道互操作的世界

如果我这样做,我会尝试在C#(托管代码)中生成一个简单的直通代理,作为概念证明。如果吞吐量达不到要求,则始终可以转换为本机代码(Win32/C++)。有一些示例C#代码可能是一个有用的参考


以下是。

我打赌Samba/Winbind包含高度相关的代码。但不确定它的可重用性。

管道是本地通信系统,它不会扩展到网络。。。那么Linux系统应该如何访问Windows系统上的管道呢?根据定义,Windows系统必须是不同的系统(甚至是VM)?或者您想知道如何编写代理或类似的东西吗?@DarkDust:Windows命名管道通过网络名称空间导出。您可以使用正确的安全属性从另一台Windows计算机打开一个管道,并在管道名称前加上WINS名称。Windows命名管道的工作方式与标准Linux管道不同,并且可以跨网络工作。我在问是否有人在Linux中编写了支持Windows命名管道的库。最后,我编写了一个Windows代理服务,它在Windows管道和套接字之间架起了桥梁。谢谢。我想到了在Windows端编写代理的想法,但是在Windows服务器上安装任何东西的想法遭到了抵制…@MichaelB76-多么令人沮丧。。。希望在试图进行NP互操作的过程中,对风险和成本进行充分论证的陈述能够为您提供有力的支持。什么是Windows操作系统?一台机器,还是多台?我认为Samba套件包含一些有用的东西;但不知道如何使用它。某些samba工具必须在内部连接到NT命名的pipes.Correct。这里的关键是
IPC$
共享。此共享中的“文件”实际上是连接到文件服务器进程的命名管道。