Win32 named pipes and remote clients

Voyager Systems picture Voyager Systems · Apr 5, 2009 · Viewed 12.9k times · Source

Can I access a named pipe on computer A from computer B given computer A's IP address? If so, what do I need to do to make this happen?

Answer

Brian R. Bondy picture Brian R. Bondy · Apr 5, 2009

Yes you can communicate across the network via named pipes. You specify the pipe name like a UNC path:

\\computername\pipe\pipename

or via IP

\\192.168.0.100\pipe\pipename

You can do this for any LAN machine, or for any remote machine connected to your LAN via VPN.

You use all of the same pipe Win32 API functions such as CreateFile. To create the pipe you use CreateNamedPipe.

Before you can use a remote pipe, you must have a valid connection to the remote computer. To do this you would use an API like WNetUseConnection. Or if your computer is on the same domain, or has the same u/p you don't need to use WNetUseConnection at all.

If you are running your program as a service, you cannot access LAN resources with the local system account. The service would have to be configured with another account.