给定计算机 A 的 IP 地址,我可以从计算机 B 访问计算机 A 上的命名管道吗?如果是这样,我需要做些什么来实现这一点?
Voyager Systems
问问题
13699 次
3 回答
11
是的,您可以通过命名管道通过网络进行通信。您可以像 UNC 路径一样指定管道名称:
\\computername\pipe\pipename
或通过 IP
\\192.168.0.100\pipe\pipename
您可以对任何 LAN 机器或通过 VPN 连接到 LAN 的任何远程机器执行此操作。
您使用所有相同的管道 Win32 API 函数,例如CreateFile。要创建管道,请使用CreateNamedPipe。
在您可以使用远程管道之前,您必须与远程计算机建立有效连接。为此,您将使用WNetUseConnection 之类的 API 。或者,如果您的计算机在同一个域上,或者具有相同的 u/p,则根本不需要使用 WNetUseConnection。
如果您将程序作为服务运行,则无法使用本地系统帐户访问 LAN 资源。该服务必须使用另一个帐户进行配置。
于 2009-04-05T18:07:03.473 回答
1
请注意,Windows 下的管道非常糟糕。有很多关键的细节你需要完全正确,否则它们会奇怪地失败并且文档没有达到标准。
如果可以,请使用套接字。
于 2009-04-05T18:46:05.767 回答