Ditto the lament that named pipes still aren't supported on non-NT systems.

Unfortunately, anonymous pipes can't easily be substituted for named pipes
in something like the remoting channel sample.  The API for named pipes
supports a traditional client/server approach ("server" creates a named pipe
and listens for connections, "client" connect to a named pipe on some
machine - possibly the same machine).

Anonymous pipes in Win32 have a really different API that doesn't cater to
that type of usage.  With one call to CreatePipe, you get back two handes;
one to the "read" end and one to the "write" end of the pipe.  So there's
not notion of client/server; more like producer/consumer.  And since the
creating process has both handles, there's no way for another process to
connect to the pipe - from the same machine or another machine.  The pipe
has no name (hence the 'anonymous' moniker).  For another process to be able
to use the pipe, you have to get the handle to them somehow.

The typical usage is to spawn the other process, allowing it to inherit one
of the handles; maybe as a stdin/out/error handle, or by passing a
stringified version of the handle to the process on its cmd line for it to
use.  But that implies the creator of the pipe is creating the other process
that's going to interact with it.  In the absence of that relationship, the
creating process would have to somehow get its hands on the handle to
another process and use it, along with DuplicateHandle, to create a handle
that's usable by the other process.  But that has two problems: the
pipe-creating process has to somehow gets its hands on the HANDLE to the
other process; and the approach is limited to processes on the same machine.

So at the end of the day, anon pipes aren't usable cross-host; and even on
the same host, are only usable in a two very niche manners: intra-process
streaming between threads, and cross-process streaming where the
pipe-creating process is spawning the other process.

-Mike
http://staff.develop.com/woodring
http://www.develop.com/devresources

----- Original Message -----
From: "Tom Archer" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, April 23, 2002 5:42 AM
Subject: Re: [DOTNET] Named Pipes for Remoting - thanks you (and a question
about named pipes)....


> Yep. I came from OS/2 years ago and with NP being the IPC of choice on
OS/2
> hated those early versions of Windows. I think you can use anon pipes
though
>

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to