我是否可以从计算机B访问计算机A上的命名管道给定计算机A的IP地址?如果是这样,我需要做些什么才能实现这一目标?
答案 0 :(得分:12)
是的,您可以通过命名管道在网络上进行通信。您可以像UNC路径一样指定管道名称:
\\computername\pipe\pipename
或通过IP
\\192.168.0.100\pipe\pipename
您可以为任何LAN计算机或通过VPN连接到LAN的任何远程计算机执行此操作。
您使用所有相同的管道Win32 API函数,例如CreateFile。要创建管道,请使用CreateNamedPipe。
在使用远程管道之前,您必须具有与远程计算机的有效连接。为此,您可以使用WNetUseConnection之类的API。或者,如果您的计算机位于同一个域中,或者具有相同的u / p,则根本不需要使用WNetUseConnection。
如果您将程序作为服务运行,则无法使用本地系统帐户访问LAN资源。该服务必须配置另一个帐户。
答案 1 :(得分:2)
命名管道可用于在网络上不同计算机上的进程之间提供IPC。请参阅MSDN。
如果您使用的是Windows XP SP2,Windows Server 2003 SP1及更高版本,请不要忘记启用命名管道过滤。请参阅here。
答案 2 :(得分:1)
请注意,Windows下的管道很可怕。你需要很多关键细节才能完全正确,否则它们就会奇怪地失败而且文档也不是最新的。
如果可以,请使用套接字。