NamedPipeClientStream 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在命名管道周围公开 Stream,该管道支持同步和异步读取和写入操作。
public ref class NamedPipeClientStream sealed : System::IO::Pipes::PipeStream
public sealed class NamedPipeClientStream : System.IO.Pipes.PipeStream
type NamedPipeClientStream = class
inherit PipeStream
Public NotInheritable Class NamedPipeClientStream
Inherits PipeStream
- 继承
- 继承
示例
以下示例演示如何使用命名管道将字符串从父进程发送到同一计算机上的子进程。 此示例在父进程中创建 NamedPipeServerStream 对象。 NamedPipeServerStream 对象具有 Out的 PipeDirection 值。然后,服务器将等待子进程中 NamedPipeClientStream 对象连接到该对象。 在此示例中,这两个进程位于同一台计算机上,NamedPipeClientStream 对象具有 PipeDirection 值 In。 然后,父进程将用户提供的字符串发送到子进程。 字符串会显示到控制台。
此示例适用于连接到服务器进程的客户端进程。 有关整个代码示例(包括管道客户端和服务器的代码)请参阅 如何:将命名管道用于网络进程间通信。
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();
}
}
Imports System.IO
Imports System.IO.Pipes
Imports System.Security.Principal
Class PipeClient
Shared Sub Main(ByVal args As String())
Dim pipeClient As New NamedPipeClientStream("localhost", _
"testpipe", PipeDirection.In, PipeOptions.None)
' Connect to the pipe or wait until the pipe is available.
Console.WriteLine("Attempting to connect to the pipe...")
pipeClient.Connect()
Console.WriteLine("Connect to the pipe.")
Console.WriteLine("There are currently {0} pipe server instances open.", _
pipeClient.NumberOfServerInstances)
Dim sr As New StreamReader(pipeClient)
Dim temp As String
temp = sr.ReadLine()
While Not temp Is Nothing
Console.WriteLine("Received from server: {0}", temp)
temp = sr.ReadLine()
End While
Console.Write("Press Enter to continue...")
Console.ReadLine()
End Sub
End Class
注解
命名管道提供单向或双工管道,用于管道服务器与一个或多个管道客户端之间的通信。 命名管道可用于本地或通过网络进行进程间通信。 单个管道名称可由多个 NamedPipeClientStream 对象共享。
任何进程都可以充当命名管道服务器或客户端,也可以同时充当这两者。
构造函数
属性
CanRead |
获取一个值,该值指示当前流是否支持读取操作。 (继承自 PipeStream) |
CanSeek |
获取一个值,该值指示当前流是否支持查找操作。 (继承自 PipeStream) |
CanTimeout |
获取一个值,该值确定当前流是否可以超时。 (继承自 Stream) |
CanWrite |
获取一个值,该值指示当前流是否支持写入操作。 (继承自 PipeStream) |
InBufferSize |
获取管道的入站缓冲区的大小(以字节为单位)。 (继承自 PipeStream) |
IsAsync |
获取一个值,该值指示 PipeStream 对象是异步打开还是同步打开。 (继承自 PipeStream) |
IsConnected |
获取或设置一个值,该值指示 PipeStream 对象是否已连接。 (继承自 PipeStream) |
IsHandleExposed |
获取一个值,该值指示是否公开 PipeStream 对象的句柄。 (继承自 PipeStream) |
IsMessageComplete |
获取一个值,该值指示从最近的读取操作返回的消息中是否有更多数据。 (继承自 PipeStream) |
Length |
获取流的长度(以字节为单位)。 (继承自 PipeStream) |
NumberOfServerInstances |
获取共享同一管道名称的服务器实例数。 |
OutBufferSize |
获取管道的出站缓冲区的大小(以字节为单位)。 (继承自 PipeStream) |
Position |
获取或设置当前流的当前位置。 (继承自 PipeStream) |
ReadMode |
获取或设置 PipeStream 对象的读取模式。 (继承自 PipeStream) |
ReadTimeout |
获取或设置一个值(以毫秒为单位),该值确定流在超时前尝试读取的时间。 (继承自 Stream) |
SafePipeHandle |
获取当前 PipeStream 对象封装的管道的本地端的安全句柄。 (继承自 PipeStream) |
TransmissionMode |
获取当前管道支持的管道传输模式。 (继承自 PipeStream) |
WriteTimeout |
获取或设置一个值(以毫秒为单位),该值确定流在超时之前尝试写入的时间。 (继承自 Stream) |
方法
扩展方法
CopyToAsync(Stream, PipeWriter, CancellationToken) |
使用取消令牌从 Stream 异步读取字节并将其写入指定的 PipeWriter。 |
GetAccessControl(PipeStream) |
返回管道流的安全信息。 |
SetAccessControl(PipeStream, PipeSecurity) |
更改现有管道流的安全属性。 |
ConfigureAwait(IAsyncDisposable, Boolean) |
配置如何执行从异步可释放项返回的任务的 await。 |