public ref class NamedPipeServerStream sealed : System::IO::Pipes::PipeStream
public sealed class NamedPipeServerStream : System.IO.Pipes.PipeStream
type NamedPipeServerStream = class
    inherit PipeStream
Public NotInheritable Class NamedPipeServerStream
Inherits PipeStream
NamedPipeServerStream

以下示例演示了一种使用命名管道将字符串从父进程发送到同一计算机上的子进程的方法。 此示例在父进程中 PipeDirection 创建 NamedPipeServerStream 值为 的 Out 对象。然后,服务器等待 NamedPipeClientStream 子进程中的 对象连接到该对象。 在此示例中,这两个进程位于同一 PipeDirection 台计算机上, NamedPipeClientStream 并且 对象的值为 In 。 接下来,父进程将用户提供的字符串发送给子进程。 字符串显示在控制台中。

此示例适用于使用 NamedPipeServerStream 类的服务器进程。 有关整个代码示例(包括管道客户端和服务器的代码),请参阅 如何:使用命名管道进行网络进程间通信

using System; using System.IO; using System.IO.Pipes; class PipeServer static void Main() using (NamedPipeServerStream pipeServer = new NamedPipeServerStream("testpipe", PipeDirection.Out)) Console.WriteLine("NamedPipeServerStream object created."); // Wait for a client to connect Console.Write("Waiting for client connection..."); pipeServer.WaitForConnection(); Console.WriteLine("Client connected."); // Read user input and send that to the client process. using (StreamWriter sw = new StreamWriter(pipeServer)) sw.AutoFlush = true; Console.Write("Enter text: "); sw.WriteLine(Console.ReadLine()); // Catch the IOException that is raised if the pipe is broken // or disconnected. catch (IOException e) Console.WriteLine("ERROR: {0}", e.Message); Imports System.IO Imports System.IO.Pipes Class PipeServer Shared Sub Main() Dim pipeServer As New NamedPipeServerStream("testpipe", PipeDirection.Out) Console.WriteLine("NamedPipeServerStream object created.") ' Wait for a client to connect Console.Write("Waiting for a client connection...") pipeServer.WaitForConnection() Console.WriteLine("Client connected.") 'Read user input and send that to the client process. Dim sw As New StreamWriter(pipeServer) sw.AutoFlush = True Console.Write("Enter Text: ") sw.WriteLine(Console.ReadLine()) Catch ex As IOException ' Catch the IOException that is raised if the pipe is broken ' or disconnected Console.WriteLine("ERROR: {0}", ex.Message) End Try End Sub End Class

命名管道提供单向或双工管道,用于管道服务器与一个或多个管道客户端之间的通信。 命名管道可用于本地或通过网络进行进程间通信。 单个管道名称可由多个 NamedPipeClientStream 对象共享。

任何进程都可以充当命名管道服务器或客户端,也可以同时充当这两者。

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32, PipeSecurity, HandleInheritability, PipeAccessRights)

使用指定的管道名称、管道方向、最大数量的服务器实例、传输模式、管道选项、建议的输入输出缓冲区大小、管道安全性、继承模式和管道访问权限初始化 NamedPipeServerStream 类的新实例。