NamedPipeServerStream Classe

Definição

Expõe um Stream em torno de um pipe nomeado, suportando operações de leitura e escrita síncronas e assíncronas.

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
Herança
NamedPipeServerStream

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 com 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 servidor, que usa a NamedPipeServerStream classe. Para o exemplo completo do código, incluindo o código tanto para o cliente 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 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.");
            try
            {
                // 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.")
        Try
            '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

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.

No que diz respeito à segurança dos fios para leitura e escrita, até um leitor e um único escritor podem usar um exemplo em simultâneo.

Construtores

Name Description
NamedPipeServerStream(PipeDirection, Boolean, Boolean, SafePipeHandle)

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

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

Inicializa uma nova instância da NamedPipeServerStream classe com o nome do pipe especificado, direção do pipe, número máximo de instâncias de servidor, modo de transmissão, opções de pipe, tamanhos recomendados de buffer de entrada e saída, segurança do pipe, modo de herdagem e direitos de acesso ao pipe.

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

Inicializa uma nova instância da NamedPipeServerStream classe com o nome do pipe especificado, direção do pipe, número máximo de instâncias de servidor, modo de transmissão, opções de pipe, tamanhos recomendados de buffer de entrada e saída, segurança do pipe e modo de herdabilidade.

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

Inicializa uma nova instância da NamedPipeServerStream classe com o nome do pipe especificado, direção do pipe, número máximo de instâncias de servidor, modo de transmissão, opções de pipe, tamanhos recomendados de buffer de entrada e saída, e segurança do pipe.

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32)

Inicializa uma nova instância da NamedPipeServerStream classe com o nome do pipe especificado, direção do pipe, número máximo de instâncias de servidor, modo de transmissão, opções de pipe e tamanhos recomendados de buffer de entrada e saída.

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions)

Inicializa uma nova instância da NamedPipeServerStream classe com o nome do pipe especificado, direção do pipe, número máximo de instâncias de servidor, modo de transmissão e opções de pipe.

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode)

Inicializa uma nova instância da NamedPipeServerStream classe com o nome do pipe especificado, direção do pipe, número máximo de instâncias do servidor e modo de transmissão.

NamedPipeServerStream(String, PipeDirection, Int32)

Inicializa uma nova instância da NamedPipeServerStream classe com o nome do pipe especificado, direção do pipe e número máximo de instâncias de servidor.

NamedPipeServerStream(String, PipeDirection)

Inicializa uma nova instância da NamedPipeServerStream classe com o nome e direção do pipe especificados.

NamedPipeServerStream(String)

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

Campos

Name Description
MaxAllowedServerInstances

Representa o número máximo de instâncias de servidor que os recursos do sistema permitem.

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

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)
BeginWaitForConnection(AsyncCallback, Object)

Inicia uma operação assíncrona para esperar que um cliente se ligue.

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

Desliga a ligação atual.

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

Termina uma operação assíncrona para esperar que um cliente se ligue.

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

Fica com o nome de utilizador do cliente do outro lado do canal.

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

Liga a um delegado enquanto se faz passar pelo cliente.

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

Espera que um cliente se ligue a este NamedPipeServerStream objeto.

WaitForConnectionAsync()

Espera assíncronamente que um cliente se ligue a este NamedPipeServerStream objeto.

WaitForConnectionAsync(CancellationToken)

Espera assíncronamente que um cliente se ligue a este NamedPipeServerStream objeto e monitoriza os pedidos de cancelamento.

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