NamedPipeClientStream.NumberOfServerInstances Property

 

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

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

public int NumberOfServerInstances {
	[SecurityCriticalAttribute]
	get;
}

Property Value

Type: System.Int32

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

Exception Condition
InvalidOperationException

The pipe handle has not been set.

-or-

The current NamedPipeClientStream object has not yet connected to a NamedPipeServerStream object.

IOException

The pipe is broken or an I/O error occurred.

ObjectDisposedException

The underlying pipe handle is closed.

This property returns the number of server instances for the NamedPipeServerStream object that the current NamedPipeClientStream object has a handle to or is connected to. If the current NamedPipeClientStream object has not yet connected to a named pipe server, or if the current pipe handle has not yet been set, this property throws an InvalidOperationException.

The following example demonstrates a method to send a string from a parent process to a child process using named pipes. In this example, a NamedPipeClientStream object is created in a child process, which then connects to a pipe on the local computer. The server example can be seen in the NamedPipeServerStream class. This example is part of a larger example provided for the NamedPipeServerStream and NamedPipeClientStream classes.

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();
    }
}

.NET Framework
Available since 3.5
Return to top
Show: