AnonymousPipeClientStream Classe

Definição

Expõe o lado cliente de um fluxo de pipeline anónimo, que suporta operações de leitura e escrita síncronas e assíncronas (sem suporte a cancelamento em plataformas Windows).

public ref class AnonymousPipeClientStream sealed : System::IO::Pipes::PipeStream
public sealed class AnonymousPipeClientStream : System.IO.Pipes.PipeStream
type AnonymousPipeClientStream = class
    inherit PipeStream
Public NotInheritable Class AnonymousPipeClientStream
Inherits PipeStream
Herança
AnonymousPipeClientStream

Exemplos

O exemplo seguinte envia uma string de um processo pai para um processo filho usando pipes anónimos. Este exemplo cria um AnonymousPipeServerStream objeto num processo pai com um PipeDirection valor de Out. Também cria um AnonymousPipeClientStream objeto num processo filho com valor PipeDirection 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 é iniciado pelo processo servidor. Nomeie o executável resultante a partir do código pipeClient.exe do cliente e copie-o para o mesmo diretório do executável do servidor quando executar este exemplo. Para o exemplo completo do código, incluindo o código tanto para o cliente de pipe como para o servidor, veja Como: Usar Pipes Anónimos para Comunicação Local entre Processos.

//<snippet01>
using System;
using System.IO;
using System.IO.Pipes;

class PipeClient
{
    static void Main(string[] args)
    {
        if (args.Length > 0)
        {
            using (PipeStream pipeClient =
                new AnonymousPipeClientStream(PipeDirection.In, args[0]))
            {
                Console.WriteLine("[CLIENT] Current TransmissionMode: {0}.",
                   pipeClient.TransmissionMode);

                using (StreamReader sr = new StreamReader(pipeClient))
                {
                    // Display the read text to the console
                    string temp;

                    // Wait for 'sync message' from the server.
                    do
                    {
                        Console.WriteLine("[CLIENT] Wait for sync...");
                        temp = sr.ReadLine();
                    }
                    while (!temp.StartsWith("SYNC"));

                    // Read the server data and echo to the console.
                    while ((temp = sr.ReadLine()) != null)
                    {
                        Console.WriteLine("[CLIENT] Echo: " + temp);
                    }
                }
            }
        }
        Console.Write("[CLIENT] Press Enter to continue...");
        Console.ReadLine();
    }
}
//</snippet01>
'<snippet01>
Imports System.IO
Imports System.IO.Pipes

Class PipeClient
    Shared Sub Main(args() as String)
        If args.Length > 0 Then
            Using pipeClient As New AnonymousPipeClientStream(PipeDirection.In, args(0))
                Console.WriteLine("[CLIENT] Current TransmissionMode: {0}.", _
                   pipeClient.TransmissionMode)

                Using sr As New StreamReader(pipeClient)
                    ' Display the read text to the console
                    Dim temp As String

                    ' Wait for 'sync message' from the server.
                    Do
                        Console.WriteLine("[CLIENT] Wait for sync...")
                        temp = sr.ReadLine()
                    Loop While temp.StartsWith("SYNC") = False

                    ' Read the server data and echo to the console.
                    temp = sr.ReadLine()
                    While Not temp = Nothing
                        Console.WriteLine("[CLIENT] Echo: " + temp)
                        temp = sr.ReadLine()
                    End While
                End Using
            End Using
        End If
        Console.Write("[CLIENT] Press Enter to continue...")
        Console.ReadLine()
    End Sub
End Class
'</snippet01>

Observações

Os pipelines anónimos ajudam a proporcionar uma comunicação interprocesso segura e protegida entre processos da criança e dos pais. A AnonymousPipeClientStream classe permite que um processo filho se ligue e troque informações com um processo pai.

Os pipelines anónimos são pipelines unidirecionais sem nome que normalmente transferem dados entre processos pais e filhos. Gaitas anónimas são sempre locais; não podem ser usados numa rede. Um PipeDirection valor de InOut não é suportado porque os pipes anónimos são definidos como unidirecionais.

Os pipes anónimos não suportam o PipeTransmissionMode.Message modo de leitura.

O lado cliente de um pipe anónimo deve ser criado a partir de um handle de pipe fornecido pelo lado do servidor, chamando o GetClientHandleAsString método. A cadeia é então passada como parâmetro ao criar o processo cliente. A partir do processo cliente, é passado para o AnonymousPipeClientStream construtor como parâmetro pipeHandleAsString .

No Windows, operações assíncronas (sobrepostas) de leitura e escrita não são suportadas por pipes anónimos (ver Operações de pipe anónimas). A classe AnonymousPipeClientStream continuará a agendar o trabalho no pool de threads em plataformas Windows para que as operações assíncronas Stream funcionem, mas o cancelamento dessas operações não é suportado.

Construtores

Name Description
AnonymousPipeClientStream(PipeDirection, SafePipeHandle)

Inicializa uma nova instância da AnonymousPipeClientStream classe a partir do handle especificado.

AnonymousPipeClientStream(PipeDirection, String)

Inicializa uma nova instância da AnonymousPipeClientStream classe com a direção do pipe especificada e uma representação string do pipe handle.

AnonymousPipeClientStream(String)

Inicializa uma nova instância da AnonymousPipeClientStream classe com a representação de string especificada da alavanca do pipe.

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)
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

Define o modo de leitura do AnonymousPipeClientStream objeto.

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.

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)
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.

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 AnonymousPipeClientStream 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)

Apaga assíncronamente todos os buffers deste fluxo, faz com que quaisquer dados armazenados sejam escritos no dispositivo subjacente e monitoriza os pedidos de cancelamento.

(Herdado de Stream)
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()

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

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)
ReadByte()

Lê um byte de um canal.

(Herdado de PipeStream)
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.

Aplica-se a