NamedPipeClientStream Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Expõe um Stream em torno de um pipe nomeado, que suporta operações de leitura e escrita síncronas e assíncronas.
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
- Herança
- Herança
Exemplos
O exemplo seguinte demonstra uma forma de enviar uma string de um processo pai para um processo filho no mesmo computador usando pipes nomeados. Este exemplo cria um NamedPipeServerStream objeto num processo pai. O NamedPipeServerStream objeto tem um PipeDirection valor de Out. O servidor espera então que um NamedPipeClientStream objeto num processo filho se ligue a ele. Neste exemplo, ambos os processos estão no mesmo computador e o NamedPipeClientStream objeto tem um PipeDirection valor de In. O processo pai envia então uma string fornecida pelo utilizador para o processo filho. A corda é apresentada na consola.
Este exemplo é para o processo cliente, que se liga ao processo servidor. Para o exemplo completo de código, incluindo o código tanto para o cliente de pipe como para o servidor, veja Como: Usar Pipes Nomeados para Comunicação entre Processos de Rede.
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
Observações
Os pipes nomeados fornecem pipelines unidirecionais ou duplex para comunicação entre um servidor de pipeline e um ou mais clientes de pipeline. Os pipelines nomeados podem ser usados para comunicação entre processos localmente ou através de uma rede. Um único nome de pipe pode ser partilhado por vários NamedPipeClientStream objetos.
Qualquer processo pode atuar como servidor de pipe nomeado ou cliente, ou ambos.
Construtores
| Name | Description |
|---|---|
| NamedPipeClientStream(PipeDirection, Boolean, Boolean, SafePipeHandle) |
Obsoleto.
Inicializa uma nova instância da NamedPipeClientStream classe para o handle de pipe especificado com a direção do pipe especificada. |
| NamedPipeClientStream(PipeDirection, Boolean, SafePipeHandle) |
Expõe um Stream em torno de um pipe nomeado, que suporta operações de leitura e escrita síncronas e assíncronas. |
| NamedPipeClientStream(String, String, PipeAccessRights, PipeOptions, TokenImpersonationLevel, HandleInheritability) |
Inicializa uma nova instância da NamedPipeClientStream classe com os nomes do pipe e servidor especificados, e as opções de pipe especificadas, nível de personificação de segurança e modo de herdabilidade. |
| NamedPipeClientStream(String, String, PipeDirection, PipeOptions, TokenImpersonationLevel, HandleInheritability) |
Inicializa uma nova instância da NamedPipeClientStream classe com os nomes do pipe e servidor especificados, e a direção do pipe especificada, opções de pipe, nível de personificação de segurança e modo de herdabilidade. |
| NamedPipeClientStream(String, String, PipeDirection, PipeOptions, TokenImpersonationLevel) |
Inicializa uma nova instância da NamedPipeClientStream classe com os nomes de pipe e servidores especificados, e a direção do pipe especificada, opções de pipe e nível de imitação de segurança. |
| NamedPipeClientStream(String, String, PipeDirection, PipeOptions) |
Inicializa uma nova instância da NamedPipeClientStream classe com os nomes de pipe e servidores especificados, e a direção e opções de pipe especificadas. |
| NamedPipeClientStream(String, String, PipeDirection) |
Inicializa uma nova instância da NamedPipeClientStream classe com os nomes do pipe e servidor especificados, e a direção do pipe especificada. |
| NamedPipeClientStream(String, String) |
Inicializa uma nova instância da NamedPipeClientStream classe com os nomes de pipe e servidores especificados. |
| NamedPipeClientStream(String) |
Inicializa uma nova instância da NamedPipeClientStream classe com o nome do pipe especificado. |
Propriedades
| Name | Description |
|---|---|
| CanRead |
Recebe um valor que indica se o fluxo atual suporta operações de leitura. (Herdado de PipeStream) |
| CanSeek |
Recebe um valor que indica se o fluxo atual suporta operações de procura. (Herdado de PipeStream) |
| CanTimeout |
Obtém um valor que determina se o fluxo atual pode expirar. (Herdado de Stream) |
| CanWrite |
Recebe um valor que indica se o fluxo atual suporta operações de escrita. (Herdado de PipeStream) |
| InBufferSize |
Obtém o tamanho, em bytes, do buffer de entrada para um pipe. (Herdado de PipeStream) |
| IsAsync |
Recebe um valor que indica se um PipeStream objeto foi aberto de forma assíncrona ou síncrona. (Herdado de PipeStream) |
| IsConnected |
Obtém ou define um valor que indica se um PipeStream objeto está ligado. (Herdado de PipeStream) |
| IsHandleExposed |
Obtém um valor que indica se uma alça de um PipeStream objeto está exposta. (Herdado de PipeStream) |
| IsMessageComplete |
Recebe um valor que indica se há mais dados na mensagem devolvida da operação de leitura mais recente. (Herdado de PipeStream) |
| Length |
Obtém o comprimento de um fluxo, em bytes. (Herdado de PipeStream) |
| NumberOfServerInstances |
Obtém o número de instâncias de servidor que partilham o mesmo nome de pipeline. |
| OutBufferSize |
Obtém o tamanho, em bytes, do buffer de saída para um pipe. (Herdado de PipeStream) |
| Position |
Obtém ou define a posição atual do fluxo atual. (Herdado de PipeStream) |
| ReadMode |
Obtém ou define o modo de leitura de um PipeStream objeto. (Herdado de PipeStream) |
| ReadTimeout |
Recebe ou define um valor, em milissegundos, que determina quanto tempo o fluxo tentará ler antes de expirar. (Herdado de Stream) |
| SafePipeHandle |
Obtém a alavanca segura para a extremidade local do tubo que o objeto atual PipeStream encapsula. (Herdado de PipeStream) |
| TransmissionMode |
O modo de transmissão do tubo é suportado pelo tubo atual. (Herdado de PipeStream) |
| WriteTimeout |
Recebe ou define um valor, em milissegundos, que determina quanto tempo o fluxo tenta escrever antes de expirar. (Herdado de Stream) |
Métodos
| Name | Description |
|---|---|
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Inicia uma operação de leitura assíncrona. (Herdado de PipeStream) |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Inicia uma operação de escrita assíncrona. (Herdado de PipeStream) |
| CheckPipePropertyOperations() |
Verifica se o tubo está no estado adequado para obter ou definir propriedades. (Herdado de PipeStream) |
| CheckReadOperations() |
Verifica que o tubo está num estado de ligação para operações de leitura. (Herdado de PipeStream) |
| CheckWriteOperations() |
Verifica que o pipeline está num estado de ligação para operações de escrita. (Herdado de PipeStream) |
| Close() |
Fecha o fluxo atual e liberta quaisquer recursos (como sockets e handles de ficheiros) associados ao fluxo atual. Em vez de chamar este método, certifique-se de que o fluxo é devidamente descartado. (Herdado de Stream) |
| Connect() |
Liga-se a um servidor em espera com um valor de time-out infinito. |
| Connect(Int32) |
Liga-se a um servidor em espera dentro do período de tempo especificado. |
| Connect(TimeSpan) |
Liga-se a um servidor em espera dentro do período de tempo especificado. |
| ConnectAsync() |
O sistema liga-se de forma assíncrona a um servidor em espera com um período de tempo limite infinito. |
| ConnectAsync(CancellationToken) |
O O Assíncrono liga-se a um servidor em espera e monitoriza pedidos de cancelamento. |
| ConnectAsync(Int32, CancellationToken) |
O Assíncrono liga-se a um servidor em espera dentro do período de tempo especificado e monitoriza os pedidos de cancelamento. |
| ConnectAsync(Int32) |
O sistema liga-se assíncronamente a um servidor em espera dentro do período de tempo especificado. |
| ConnectAsync(TimeSpan, CancellationToken) |
O Assíncrono liga-se a um servidor em espera dentro do período de tempo especificado e monitoriza os pedidos de cancelamento. |
| CopyTo(Stream, Int32) |
Lê os bytes do fluxo atual e escreve-os noutro fluxo, usando um tamanho de buffer especificado. As posições de ambos os fluxos são avançadas pelo número de bytes copiados. (Herdado de Stream) |
| CopyTo(Stream) |
Lê os bytes do fluxo atual e escreve-os noutro fluxo. As posições de ambos os fluxos são avançadas pelo número de bytes copiados. (Herdado de Stream) |
| CopyToAsync(Stream, CancellationToken) |
Lê assíncronamente os bytes do fluxo atual e escreve-os noutro fluxo, usando um token de cancelamento especificado. As posições de ambos os fluxos são avançadas pelo número de bytes copiados. (Herdado de Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
Lê assíncronamente os bytes do fluxo atual e escreve-os noutro fluxo, usando um tamanho de buffer especificado e um token de cancelamento. As posições de ambos os fluxos são avançadas pelo número de bytes copiados. (Herdado de Stream) |
| CopyToAsync(Stream, Int32) |
Lê assíncronamente os bytes do fluxo atual e escreve-os noutro fluxo, usando um tamanho de buffer especificado. As posições de ambos os fluxos são avançadas pelo número de bytes copiados. (Herdado de Stream) |
| CopyToAsync(Stream) |
Lê assíncronamente os bytes do fluxo atual e escreve-os noutro fluxo. As posições de ambos os fluxos são avançadas pelo número de bytes copiados. (Herdado de Stream) |
| CreateObjRef(Type) |
Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
| CreateWaitHandle() |
Obsoleto.
Obsoleto.
Obsoleto.
Aloca um WaitHandle objeto. (Herdado de Stream) |
| Dispose() |
Liberta todos os recursos utilizados pelo Stream. (Herdado de Stream) |
| Dispose(Boolean) |
Liberta os recursos não geridos usados pela PipeStream classe e, opcionalmente, liberta os recursos geridos. (Herdado de PipeStream) |
| DisposeAsync() |
De forma assíncrona, liberta os recursos não geridos usados pelos Stream. (Herdado de Stream) |
| EndRead(IAsyncResult) |
Termina um pedido de leitura assíncrono pendente. (Herdado de PipeStream) |
| EndWrite(IAsyncResult) |
Termina um pedido de escrita assíncrono pendente. (Herdado de PipeStream) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| Finalize() |
Liberta recursos não geridos e realiza outras operações de limpeza antes de a NamedPipeClientStream instância ser recuperada pela recolha de lixo. |
| Flush() |
Limpa o buffer do fluxo atual e faz com que quaisquer dados em buffer sejam escritos no dispositivo subjacente. (Herdado de PipeStream) |
| FlushAsync() |
Apaga assíncronamente todos os buffers deste fluxo e faz com que quaisquer dados armazenados sejam escritos no dispositivo subjacente. (Herdado de Stream) |
| FlushAsync(CancellationToken) |
O buffer para o fluxo atual limpa assíncronamente e faz com que quaisquer dados em buffer sejam escritos no dispositivo subjacente. (Herdado de PipeStream) |
| GetAccessControl() |
Obtém um PipeSecurity objeto que encapsula as entradas da lista de controlo de acesso (ACL) para o tubo descrito pelo objeto atual PipeStream . (Herdado de PipeStream) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetLifetimeService() |
Obsoleto.
Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso. (Herdado de MarshalByRefObject) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| InitializeHandle(SafePipeHandle, Boolean, Boolean) |
Inicializa um PipeStream objeto a partir do objeto especificado SafePipeHandle . (Herdado de PipeStream) |
| InitializeLifetimeService() |
Obsoleto.
Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso. (Herdado de MarshalByRefObject) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto atual MarshalByRefObject . (Herdado de MarshalByRefObject) |
| ObjectInvariant() |
Obsoleto.
Fornece suporte para um Contract. (Herdado de Stream) |
| Read(Byte[], Int32, Int32) |
Lê um bloco de bytes de um fluxo e escreve os dados num buffer especificado a partir de uma posição determinada para um comprimento especificado. (Herdado de PipeStream) |
| Read(Span<Byte>) |
Lê uma sequência de bytes do fluxo atual, escreve-os num array de bytes e avança a posição dentro do fluxo pelo número de bytes lidos. (Herdado de PipeStream) |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
O Assíncrono lê uma sequência de bytes do fluxo atual para um array de bytes a partir de uma posição especificada para um número determinado de bytes, avança a posição dentro do fluxo pelo número de bytes lidos e monitoriza pedidos de cancelamento. (Herdado de PipeStream) |
| ReadAsync(Byte[], Int32, Int32) |
A leitura assíncrona uma sequência de bytes do fluxo atual e avança a posição dentro do fluxo pelo número de bytes lidos. (Herdado de Stream) |
| ReadAsync(Memory<Byte>, CancellationToken) |
O Assíncrono lê uma sequência de bytes do fluxo atual, escreve-os num intervalo de memória de bytes, avança a posição dentro do fluxo pelo número de bytes lidos e monitoriza pedidos de cancelamento. (Herdado de PipeStream) |
| ReadAtLeast(Span<Byte>, Int32, Boolean) |
Lê pelo menos um número mínimo de bytes do fluxo atual e avança a posição dentro do fluxo pelo número de bytes lidos. (Herdado de Stream) |
| ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
O Assíncrono lê pelo menos um número mínimo de bytes do fluxo atual, avança a posição dentro do fluxo pelo número de bytes lidos e monitoriza pedidos de cancelamento. (Herdado de Stream) |
| ReadByte() |
Lê um byte de um canal. (Herdado de PipeStream) |
| ReadExactly(Byte[], Int32, Int32) |
Lê |
| ReadExactly(Span<Byte>) |
Lê bytes do fluxo atual e avança a posição dentro do fluxo até ser |
| ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Lê |
| ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Lê assíncronamente bytes do fluxo atual, avança a posição dentro do fluxo até que este |
| Seek(Int64, SeekOrigin) |
Define a posição atual do fluxo atual para o valor especificado. (Herdado de PipeStream) |
| SetAccessControl(PipeSecurity) |
Aplica as entradas da lista de controlo de acesso (ACL) especificadas por um PipeSecurity objeto ao tubo especificado pelo objeto atual PipeStream . (Herdado de PipeStream) |
| SetLength(Int64) |
Define o comprimento do fluxo atual para o valor especificado. (Herdado de PipeStream) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| WaitForPipeDrain() |
Espera que a outra extremidade do tubo leia todos os bytes enviados. (Herdado de PipeStream) |
| Write(Byte[], Int32, Int32) |
Escreve um bloco de bytes no fluxo atual usando dados de um buffer. (Herdado de PipeStream) |
| Write(ReadOnlySpan<Byte>) |
Escreve uma sequência de bytes no fluxo atual e avança a posição atual dentro desse fluxo pelo número de bytes escritos. (Herdado de PipeStream) |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Escreve assíncronamente um número especificado de bytes a partir de um array de bytes a partir de uma posição especificada, avança a posição atual dentro deste fluxo pelo número de bytes escritos e monitoriza pedidos de cancelamento. (Herdado de PipeStream) |
| WriteAsync(Byte[], Int32, Int32) |
Escreve assíncronamente uma sequência de bytes no fluxo atual e avança a posição atual dentro desse fluxo pelo número de bytes escritos. (Herdado de Stream) |
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Escreve assíncronamente uma sequência de bytes no fluxo atual, avança a posição atual dentro deste fluxo pelo número de bytes escritos e monitoriza pedidos de cancelamento. (Herdado de PipeStream) |
| WriteByte(Byte) |
Escreve um byte no fluxo atual. (Herdado de PipeStream) |
Métodos da Extensão
| Name | Description |
|---|---|
| ConfigureAwait(IAsyncDisposable, Boolean) |
Configura como aguarda nas tarefas devolvidas de um descartável assíncrono será realizada. |
| CopyToAsync(Stream, PipeWriter, CancellationToken) |
Lê assíncronamente os bytes do Stream e escreve-os no especificado PipeWriter, usando um token de cancelamento. |
| GetAccessControl(PipeStream) |
Devolve a informação de segurança de um canal de conduta. |
| SetAccessControl(PipeStream, PipeSecurity) |
Altera os atributos de segurança de um fluxo de tubo existente. |