NamedPipeClientStream Classe

Definição

Expõe um Stream em torno de um pipe nomeado, que dá suporte a operações de leitura e gravação 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
NamedPipeClientStream

Exemplos

O exemplo a seguir demonstra uma maneira de enviar uma cadeia de caracteres de um processo pai para um processo filho no mesmo computador usando pipes nomeados. Este exemplo cria um objeto NamedPipeServerStream em um processo pai. O NamedPipeServerStream objeto tem um PipeDirection valor de Out. Em seguida, o servidor aguarda um NamedPipeClientStream objeto em um processo filho se conectar a ele. Neste exemplo, ambos os processos estão no mesmo computador e o NamedPipeClientStream objeto tem um PipeDirection valor de In. Em seguida, o processo pai envia uma cadeia de caracteres fornecida pelo usuário para o processo filho. A cadeia de caracteres é exibida no console.

Este exemplo é para o processo do cliente, que se conecta ao processo do servidor. Para obter todo o exemplo de código, incluindo o código para o cliente de pipe e o servidor, consulte Como usar pipes nomeados para comunicação de interprocesso 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

Comentários

Os pipes nomeados fornecem pipes unidirecionais ou duplex para comunicação entre um servidor de pipe e um ou mais clientes de pipe. Os pipes nomeados podem ser usados para comunicação entre processos localmente ou em uma rede. Um único nome de pipe pode ser compartilhado por vários NamedPipeClientStream objetos.

Qualquer processo pode atuar como um servidor de pipe nomeado ou cliente ou ambos.

Construtores

Nome Description
NamedPipeClientStream(PipeDirection, Boolean, Boolean, SafePipeHandle)

Inicializa uma nova instância da NamedPipeClientStream classe para o identificador de pipe especificado com a direção de pipe especificada.

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

Inicializa uma nova instância da NamedPipeClientStream classe com os nomes de pipe e servidor especificados e as opções de pipe, o nível de representação de segurança e o modo de herdabilidade especificados.

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

Inicializa uma nova instância da classe com os nomes de pipe e servidor especificados e a direção do pipe, as opções de pipe, o nível de NamedPipeClientStream representação de segurança e o modo de herdabilidade especificados.

NamedPipeClientStream(String, String, PipeDirection, PipeOptions, TokenImpersonationLevel)

Inicializa uma nova instância da NamedPipeClientStream classe com os nomes de pipe e servidor especificados e a direção do pipe, as opções de pipe e o nível de representação de segurança especificados.

NamedPipeClientStream(String, String, PipeDirection, PipeOptions)

Inicializa uma nova instância da NamedPipeClientStream classe com os nomes de pipe e servidor especificados e as opções de direção e pipe de pipe especificadas.

NamedPipeClientStream(String, String, PipeDirection)

Inicializa uma nova instância da NamedPipeClientStream classe com os nomes de pipe e servidor especificados e a direção de pipe especificada.

NamedPipeClientStream(String, String)

Inicializa uma nova instância da NamedPipeClientStream classe com os nomes de pipe e servidor especificados.

NamedPipeClientStream(String)

Inicializa uma nova instância da NamedPipeClientStream classe com o nome do pipe especificado.

Propriedades

Nome Description
CanRead

Obtém um valor que indica se o fluxo atual dá suporte a operações de leitura.

(Herdado de PipeStream)
CanSeek

Obtém um valor que indica se o fluxo atual dá suporte a operações de busca.

(Herdado de PipeStream)
CanTimeout

Obtém um valor que determina se o fluxo atual pode acabar.

(Herdado de Stream)
CanWrite

Obtém um valor que indica se o fluxo atual dá suporte a operações de gravação.

(Herdado de PipeStream)
InBufferSize

Obtém o tamanho, em bytes, do buffer de entrada de um pipe.

(Herdado de PipeStream)
IsAsync

Obtém 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á conectado.

(Herdado de PipeStream)
IsHandleExposed

Obtém um valor que indica se um identificador para um PipeStream objeto é exposto.

(Herdado de PipeStream)
IsMessageComplete

Obtém um valor que indica se há mais dados na mensagem retornada 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 compartilham o mesmo nome de pipe.

OutBufferSize

Obtém o tamanho, em bytes, do buffer de saída de 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

Obtém ou define um valor, em milissegundos, que determina quanto tempo o fluxo tentará ler antes do tempo limite.

(Herdado de Stream)
SafePipeHandle

Obtém o identificador seguro para a extremidade local do pipe que o objeto atual PipeStream encapsula.

(Herdado de PipeStream)
TransmissionMode

Obtém o modo de transmissão de pipe com suporte pelo pipe atual.

(Herdado de PipeStream)
WriteTimeout

Obtém ou define um valor, em milissegundos, que determina por quanto tempo o fluxo tentará gravar antes do tempo limite.

(Herdado de Stream)

Métodos

Nome 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 gravação assíncrona.

(Herdado de PipeStream)
CheckPipePropertyOperations()

Verifica se o pipe está em um estado adequado para obter ou definir propriedades.

(Herdado de PipeStream)
CheckReadOperations()

Verifica se o pipe está em um estado conectado para operações de leitura.

(Herdado de PipeStream)
CheckWriteOperations()

Verifica se o pipe está em um estado conectado para operações de gravação.

(Herdado de PipeStream)
Close()

Fecha o fluxo atual e libera todos os recursos (como soquetes e identificadores de arquivo) associados ao fluxo atual. Em vez de chamar esse método, verifique se o fluxo foi descartado corretamente.

(Herdado de Stream)
Connect()

Conecta-se a um servidor de espera com um valor de tempo limite infinito.

Connect(Int32)

Conecta-se a um servidor de espera dentro do período de tempo limite especificado.

ConnectAsync()

Conecta-se de forma assíncrona a um servidor de espera com um período de tempo limite infinito.

ConnectAsync(CancellationToken)

Conecta-se de forma assíncrona a um servidor em espera e monitora solicitações de cancelamento.

ConnectAsync(Int32, CancellationToken)

Conecta-se de forma assíncrona a um servidor de espera dentro do período de tempo limite especificado e monitora as solicitações de cancelamento.

ConnectAsync(Int32)

Conecta-se de forma assíncrona a um servidor de espera dentro do período de tempo limite especificado.

CopyTo(Stream, Int32)

Lê os bytes do fluxo atual e os grava em outro fluxo, usando um tamanho de buffer especificado. Ambas as posições de fluxos são avançadas pelo número de bytes copiados.

(Herdado de Stream)
CopyTo(Stream)

Lê os bytes do fluxo atual e os grava em outro fluxo. Ambas as posições de 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 os grava em outro fluxo, usando um token de cancelamento especificado. Ambas as posições de 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 os grava em outro fluxo, usando um token de cancelamento e tamanho de buffer especificado. Ambas as posições de fluxos são avançadas pelo número de bytes copiados.

(Herdado de Stream)
CopyToAsync(Stream, Int32)

Lê de forma assíncrona os bytes do fluxo atual e os grava em outro fluxo, usando um tamanho de buffer especificado. Ambas as posições de 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 os grava em outro fluxo. Ambas as posições de fluxos são avançadas pelo número de bytes copiados.

(Herdado de Stream)
CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
CreateWaitHandle()
Obsoleto.

Aloca um objeto WaitHandle.

(Herdado de Stream)
Dispose()

Libera todos os recursos usados pelo Stream.

(Herdado de Stream)
Dispose(Boolean)

Libera os recursos não gerenciados usados pela PipeStream classe e, opcionalmente, libera os recursos gerenciados.

(Herdado de PipeStream)
DisposeAsync()

Libera de forma assíncrona os recursos não gerenciados usados pelo Stream.

(Herdado de Stream)
EndRead(IAsyncResult)

Encerra uma solicitação de leitura assíncrona pendente.

(Herdado de PipeStream)
EndWrite(IAsyncResult)

Encerra uma solicitação de gravação assíncrona pendente.

(Herdado de PipeStream)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Finalize()

Libera recursos não gerenciados e executa outras operações de limpeza antes que a NamedPipeClientStream instância seja recuperada pela coleta de lixo.

Flush()

Limpa o buffer do fluxo atual e faz com que todos os dados em buffer sejam gravados no dispositivo subjacente.

(Herdado de PipeStream)
FlushAsync()

Limpa de forma assíncrona todos os buffers para esse fluxo e faz com que todos os dados em buffer sejam gravados no dispositivo subjacente.

(Herdado de Stream)
FlushAsync(CancellationToken)

Limpa de forma assíncrona todos os buffers para esse fluxo, faz com que todos os dados em buffer sejam gravados no dispositivo subjacente e monitora solicitações de cancelamento.

(Herdado de Stream)
GetAccessControl()

Obtém um PipeSecurity objeto que encapsula as entradas de ACL (lista de controle de acesso) para o pipe descrito pelo objeto atual PipeStream .

(Herdado de PipeStream)
GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetLifetimeService()

Recupera o objeto de serviço de tempo de vida atual que controla a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeHandle(SafePipeHandle, Boolean, Boolean)

Inicializa um PipeStream objeto do objeto especificado SafePipeHandle .

(Herdado de PipeStream)
InitializeLifetimeService()

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida dessa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(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 grava os dados em um buffer especificado começando em uma posição especificada para um comprimento especificado.

(Herdado de PipeStream)
Read(Span<Byte>)

Lê uma sequência de bytes do fluxo atual, grava-os em uma matriz 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)

Lê de forma assíncrona uma sequência de bytes do fluxo atual para uma matriz de bytes começando em uma posição especificada para um número especificado de bytes, avança a posição dentro do fluxo pelo número de bytes lidos e monitora solicitações de cancelamento.

(Herdado de PipeStream)
ReadAsync(Byte[], Int32, Int32)

Lê de forma 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)

Lê de forma assíncrona uma sequência de bytes do fluxo atual, grava-os em um intervalo de memória de bytes, avança a posição dentro do fluxo pelo número de bytes lidos e monitora solicitações de cancelamento.

(Herdado de PipeStream)
ReadByte()

Lê um byte de um pipe.

(Herdado de PipeStream)
Seek(Int64, SeekOrigin)

Define a posição atual do fluxo atual como o valor especificado.

(Herdado de PipeStream)
SetAccessControl(PipeSecurity)

Aplica as entradas de ACL (lista de controle de acesso) especificadas por um PipeSecurity objeto ao pipe especificado pelo objeto atual PipeStream .

(Herdado de PipeStream)
SetLength(Int64)

Define o comprimento do fluxo atual como o valor especificado.

(Herdado de PipeStream)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
WaitForPipeDrain()

Aguarda a outra extremidade do pipe ler todos os bytes enviados.

(Herdado de PipeStream)
Write(Byte[], Int32, Int32)

Grava um bloco de bytes no fluxo atual usando dados de um buffer.

(Herdado de PipeStream)
Write(ReadOnlySpan<Byte>)

Grava uma sequência de bytes no fluxo atual e avança a posição atual dentro desse fluxo pelo número de bytes gravados.

(Herdado de PipeStream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Grava de forma assíncrona um número especificado de bytes de uma matriz de bytes começando em uma posição especificada, avança a posição atual dentro desse fluxo pelo número de bytes gravados e monitora solicitações de cancelamento.

(Herdado de PipeStream)
WriteAsync(Byte[], Int32, Int32)

Grava de forma assíncrona uma sequência de bytes no fluxo atual e avança a posição atual dentro desse fluxo pelo número de bytes gravados.

(Herdado de Stream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Grava de forma assíncrona uma sequência de bytes no fluxo atual, avança a posição atual dentro desse fluxo pelo número de bytes gravados e monitora solicitações de cancelamento.

(Herdado de PipeStream)
WriteByte(Byte)

Grava um byte no fluxo atual.

(Herdado de PipeStream)

Métodos de Extensão

Nome Description
ConfigureAwait(IAsyncDisposable, Boolean)

Configura como as esperas nas tarefas retornadas de um descartável assíncrono serão executadas.

Aplica-se a