如果我知道计算机A的IP地址,我是否可以从计算机B访问计算机A上的命名管道?如果可以,我需要做什么才能实现它?
如果我知道计算机A的IP地址,我是否可以从计算机B访问计算机A上的命名管道?如果可以,我需要做什么才能实现它?
可以通过命名管道在网络上进行通信。您可以像使用UNC路径一样指定管道名称:
\\计算机名\pipe\管道名称
或者通过IP地址:
\\192.168.0.100\pipe\管道名称
您可以为任何局域网中的计算机,或通过VPN连接到您的局域网的任何远程计算机使用这种方法。
您可以使用所有相同的管道Win32 API函数,例如CreateFile。要创建管道,您可以使用CreateNamedPipe。
在使用远程管道之前,您必须与远程计算机建立有效的连接。要做到这一点,您可以使用类似WNetUseConnection的API。如果您的计算机在同一个域上,或具有相同的用户名和密码,则根本不需要使用WNetUseConnection。
如果您将程序作为服务运行,则无法使用本地系统帐户访问局域网资源。服务必须使用另一个帐户进行配置。
注意,Windows下的管道非常糟糕。你需要准确地掌握很多关键细节,否则它们会出现奇怪的故障,而文档也不够完善。
如果可以的话,使用套接字。