NamedPipeClientStream Class

NamedPipeClientStream Class

 

Exposes a Stream around a named pipe, which supports both synchronous and asynchronous read and write operations.

Namespace:   System.IO.Pipes
Assembly:  System.Core (in System.Core.dll)

System.Object
  System.MarshalByRefObject
    System.IO.Stream
      System.IO.Pipes.PipeStream
        System.IO.Pipes.NamedPipeClientStream

[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
public sealed class NamedPipeClientStream : PipeStream

NameDescription
System_CAPS_pubmethodNamedPipeClientStream(PipeDirection, Boolean, Boolean, SafePipeHandle)

Initializes a new instance of the NamedPipeClientStream class for the specified pipe handle with the specified pipe direction.

System_CAPS_pubmethodNamedPipeClientStream(String)

Initializes a new instance of the NamedPipeClientStream class with the specified pipe name.

System_CAPS_pubmethodNamedPipeClientStream(String, String)

Initializes a new instance of the NamedPipeClientStream class with the specified pipe and server names.

System_CAPS_pubmethodNamedPipeClientStream(String, String, PipeAccessRights, PipeOptions, TokenImpersonationLevel, HandleInheritability)

Initializes a new instance of the NamedPipeClientStream class with the specified pipe and server names, and the specified pipe options, security impersonation level, and inheritability mode.

System_CAPS_pubmethodNamedPipeClientStream(String, String, PipeDirection)

Initializes a new instance of the NamedPipeClientStream class with the specified pipe and server names, and the specified pipe direction.

System_CAPS_pubmethodNamedPipeClientStream(String, String, PipeDirection, PipeOptions)

Initializes a new instance of the NamedPipeClientStream class with the specified pipe and server names, and the specified pipe direction and pipe options.

System_CAPS_pubmethodNamedPipeClientStream(String, String, PipeDirection, PipeOptions, TokenImpersonationLevel)

Initializes a new instance of the NamedPipeClientStream class with the specified pipe and server names, and the specified pipe direction, pipe options, and security impersonation level.

System_CAPS_pubmethodNamedPipeClientStream(String, String, PipeDirection, PipeOptions, TokenImpersonationLevel, HandleInheritability)

Initializes a new instance of the NamedPipeClientStream class with the specified pipe and server names, and the specified pipe direction, pipe options, security impersonation level, and inheritability mode.

NameDescription
System_CAPS_pubpropertyCanRead

Gets a value indicating whether the current stream supports read operations.(Inherited from PipeStream.)

System_CAPS_pubpropertyCanSeek

Gets a value indicating whether the current stream supports seek operations.(Inherited from PipeStream.)

System_CAPS_pubpropertyCanTimeout

Gets a value that determines whether the current stream can time out.(Inherited from Stream.)

System_CAPS_pubpropertyCanWrite

Gets a value indicating whether the current stream supports write operations.(Inherited from PipeStream.)

System_CAPS_pubpropertyInBufferSize

Gets the size, in bytes, of the inbound buffer for a pipe.(Inherited from PipeStream.)

System_CAPS_pubpropertyIsAsync

Gets a value indicating whether a PipeStream object was opened asynchronously or synchronously.(Inherited from PipeStream.)

System_CAPS_pubpropertyIsConnected

Gets or sets a value indicating whether a PipeStream object is connected.(Inherited from PipeStream.)

System_CAPS_pubpropertyIsMessageComplete

Gets a value indicating whether there is more data in the message returned from the most recent read operation.(Inherited from PipeStream.)

System_CAPS_pubpropertyLength

Gets the length of a stream, in bytes.(Inherited from PipeStream.)

System_CAPS_pubpropertyNumberOfServerInstances

Gets the number of server instances that share the same pipe name.

System_CAPS_pubpropertyOutBufferSize

Gets the size, in bytes, of the outbound buffer for a pipe.(Inherited from PipeStream.)

System_CAPS_pubpropertyPosition

Gets or sets the current position of the current stream.(Inherited from PipeStream.)

System_CAPS_pubpropertyReadMode

Gets or sets the reading mode for a PipeStream object.(Inherited from PipeStream.)

System_CAPS_pubpropertyReadTimeout

Gets or sets a value, in miliseconds, that determines how long the stream will attempt to read before timing out. (Inherited from Stream.)

System_CAPS_pubpropertySafePipeHandle

Gets the safe handle for the local end of the pipe that the current PipeStream object encapsulates.(Inherited from PipeStream.)

System_CAPS_pubpropertyTransmissionMode

Gets the pipe transmission mode supported by the current pipe.(Inherited from PipeStream.)

System_CAPS_pubpropertyWriteTimeout

Gets or sets a value, in miliseconds, that determines how long the stream will attempt to write before timing out. (Inherited from Stream.)

NameDescription
System_CAPS_pubmethodBeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Begins an asynchronous read operation.(Inherited from PipeStream.)

System_CAPS_pubmethodBeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Begins an asynchronous write operation.(Inherited from PipeStream.)

System_CAPS_protmethodCheckPipePropertyOperations()

This API supports the product infrastructure and is not intended to be used directly from your code. Verifies that the pipe is in a proper state for getting or setting properties.(Inherited from PipeStream.)

System_CAPS_protmethodCheckReadOperations()

This API supports the product infrastructure and is not intended to be used directly from your code. Verifies that the pipe is in a connected state for read operations.(Inherited from PipeStream.)

System_CAPS_protmethodCheckWriteOperations()

This API supports the product infrastructure and is not intended to be used directly from your code. Verifies that the pipe is in a connected state for write operations.(Inherited from PipeStream.)

System_CAPS_pubmethodClose()

Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. Instead of calling this method, ensure that the stream is properly disposed.(Inherited from Stream.)

System_CAPS_pubmethodConnect()

Connects to a waiting server with an infinite time-out value.

System_CAPS_pubmethodConnect(Int32)

Connects to a waiting server within the specified time-out period.

System_CAPS_pubmethodConnectAsync()

Asynchronously connects to a waiting server with an infinite timeout period.

System_CAPS_pubmethodConnectAsync(CancellationToken)

Asynchronously connects to a waiting server and monitors cancellation requests.

System_CAPS_pubmethodConnectAsync(Int32)

Asynchronously connects to a waiting server within the specified timeout period.

System_CAPS_pubmethodConnectAsync(Int32, CancellationToken)

Asynchronously connects to a waiting server within the specified timeout period and monitors cancellation requests.

System_CAPS_pubmethodCopyTo(Stream)

Reads the bytes from the current stream and writes them to another stream.(Inherited from Stream.)

System_CAPS_pubmethodCopyTo(Stream, Int32)

Reads the bytes from the current stream and writes them to another stream, using a specified buffer size.(Inherited from Stream.)

System_CAPS_pubmethodCopyToAsync(Stream)

Asynchronously reads the bytes from the current stream and writes them to another stream.(Inherited from Stream.)

System_CAPS_pubmethodCopyToAsync(Stream, Int32)

Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size.(Inherited from Stream.)

System_CAPS_pubmethodCopyToAsync(Stream, Int32, CancellationToken)

Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size and cancellation token.(Inherited from Stream.)

System_CAPS_pubmethodCreateObjRef(Type)

Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.(Inherited from MarshalByRefObject.)

System_CAPS_pubmethodDispose()

Releases all resources used by the Stream.(Inherited from Stream.)

System_CAPS_pubmethodEndRead(IAsyncResult)

Ends a pending asynchronous read request.(Inherited from PipeStream.)

System_CAPS_pubmethodEndWrite(IAsyncResult)

Ends a pending asynchronous write request.(Inherited from PipeStream.)

System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Releases unmanaged resources and performs other cleanup operations before the NamedPipeClientStream instance is reclaimed by garbage collection.(Overrides Object.Finalize().)

System_CAPS_pubmethodFlush()

Clears the buffer for the current stream and causes any buffered data to be written to the underlying device.(Inherited from PipeStream.)

System_CAPS_pubmethodFlushAsync()

Asynchronously clears all buffers for this stream and causes any buffered data to be written to the underlying device.(Inherited from Stream.)

System_CAPS_pubmethodFlushAsync(CancellationToken)

Asynchronously clears all buffers for this stream, causes any buffered data to be written to the underlying device, and monitors cancellation requests.(Inherited from Stream.)

System_CAPS_pubmethodGetAccessControl()

Gets a PipeSecurity object that encapsulates the access control list (ACL) entries for the pipe described by the current PipeStream object.(Inherited from PipeStream.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetLifetimeService()

Retrieves the current lifetime service object that controls the lifetime policy for this instance.(Inherited from MarshalByRefObject.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodInitializeLifetimeService()

Obtains a lifetime service object to control the lifetime policy for this instance.(Inherited from MarshalByRefObject.)

System_CAPS_pubmethodRead(Byte[], Int32, Int32)

Reads a block of bytes from a stream and writes the data to a specified buffer.(Inherited from PipeStream.)

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32)

Asynchronously reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.(Inherited from Stream.)

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32, CancellationToken)

Asynchronously reads a sequence of bytes from the current stream, advances the position within the stream by the number of bytes read, and monitors cancellation requests.(Inherited from Stream.)

System_CAPS_pubmethodReadByte()

Reads a byte from a pipe.(Inherited from PipeStream.)

System_CAPS_pubmethodSeek(Int64, SeekOrigin)

Sets the current position of the current stream to the specified value.(Inherited from PipeStream.)

System_CAPS_pubmethodSetAccessControl(PipeSecurity)

Applies the access control list (ACL) entries specified by a PipeSecurity object to the pipe specified by the current PipeStream object.(Inherited from PipeStream.)

System_CAPS_pubmethodSetLength(Int64)

Sets the length of the current stream to the specified value.(Inherited from PipeStream.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

System_CAPS_pubmethodWaitForPipeDrain()

Waits for the other end of the pipe to read all sent bytes.(Inherited from PipeStream.)

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

Writes a block of bytes to the current stream using data from a buffer.(Inherited from PipeStream.)

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32)

Asynchronously writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.(Inherited from Stream.)

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32, CancellationToken)

Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.(Inherited from Stream.)

System_CAPS_pubmethodWriteByte(Byte)

Writes a byte to the current stream.(Inherited from PipeStream.)

Named pipes provide one-way or duplex pipes for communication between a pipe server and one or more pipe clients. Named pipes can be used for interprocess communication locally or over a network. A single pipe name can be shared by multiple NamedPipeClientStream objects.

Any process can act as either a named pipe server or client, or both.

System_CAPS_noteNote

For Windows XP Professional and Windows 2000 Server, a maximum of 10 pipes can simultaneously connect over the network.

The following example demonstrates a way to send a string from a parent process to a child process on the same computer using named pipes. This example creates a NamedPipeServerStream object in a parent process. The NamedPipeServerStream object has a PipeDirection value of Out. The server then waits for a NamedPipeClientStream object in a child process to connect to it. In this example, both processes are on the same computer and the NamedPipeClientStream object has a PipeDirection value of In. The parent process then sends a user-supplied string to the child process. The string is displayed to the console.

This example is for the client process, which connects to the server process. For the entire code sample, including the code for both the pipe client and server, see How to: Use Named Pipes for Network Interprocess Communication.

using System;
using System.IO;
using System.IO.Pipes;

class PipeClient
{
    static void Main(string[] args)
    {
        using (NamedPipeClientStream pipeClient =
            new NamedPipeClientStream(".", "testpipe", PipeDirection.In))
        {

            // Connect to the pipe or wait until the pipe is available.
            Console.Write("Attempting to connect to pipe...");
            pipeClient.Connect();

            Console.WriteLine("Connected to pipe.");
            Console.WriteLine("There are currently {0} pipe server instances open.",
               pipeClient.NumberOfServerInstances);
            using (StreamReader sr = new StreamReader(pipeClient))
            {
                // Display the read text to the console
                string temp;
                while ((temp = sr.ReadLine()) != null)
                {
                    Console.WriteLine("Received from server: {0}", temp);
                }
            }
        }
        Console.Write("Press Enter to continue...");
        Console.ReadLine();
    }
}

Universal Windows Platform
Available since 10
.NET Framework
Available since 3.5

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show:
© 2016 Microsoft