NamedPipeClientStream Classe

Definizione

Espone un oggetto Stream di una named pipe, che supporta operazioni di lettura e scrittura sincrone e asincrone.

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
Ereditarietà
NamedPipeClientStream
Ereditarietà
NamedPipeClientStream

Esempio

Nell'esempio seguente viene illustrato un modo per inviare una stringa da un processo padre a un processo figlio nello stesso computer usando named pipe. In questo esempio viene creato un NamedPipeServerStream oggetto in un processo padre. L'oggetto NamedPipeServerStream ha un PipeDirection valore di Out. Il server attende quindi che un NamedPipeClientStream oggetto in un processo figlio venga connesso. In questo esempio entrambi i processi si trovano nello stesso computer e l'oggetto NamedPipeClientStream ha un PipeDirection valore di In. Il processo padre invia quindi una stringa fornita dall'utente al processo figlio. La stringa viene visualizzata nella console.

Questo esempio è per il processo client, che si connette al processo del server. Per l'intero esempio di codice, incluso il codice sia per il client della pipe che per il server, vedere Procedura: Usare Named Pipe per la comunicazione interprocesso di rete.

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

Commenti

I pipe denominati forniscono pipe unidirezionale o duplex per la comunicazione tra un server pipe e uno o più client pipe. Le pipe denominate possono essere usate per la comunicazione tra processi in locale o tramite una rete. Un singolo nome della pipe può essere condiviso da più NamedPipeClientStream oggetti.

Qualsiasi processo può fungere da server di pipe o client denominato o entrambi.

Costruttori

NamedPipeClientStream(PipeDirection, Boolean, Boolean, SafePipeHandle)

Inizializza una nuova istanza della classe NamedPipeClientStream per l'handle di pipe specificato con la direzione della pipe indicata.

NamedPipeClientStream(String)

Inizializza una nuova istanza della classe NamedPipeClientStream con il nome di pipe specificato.

NamedPipeClientStream(String, String)

Inizializza una nuova istanza della classe NamedPipeClientStream con i nomi della pipe e del server specificati.

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

Inizializza una nuova istanza della classe NamedPipeClientStream con i nomi della pipe e del server specificati e le opzioni di pipe, il livello di rappresentazione di sicurezza e la modalità di ereditarietà indicati.

NamedPipeClientStream(String, String, PipeDirection)

Inizializza una nuova istanza della classe NamedPipeClientStream con i nomi della pipe e del server specificati e la direzione della pipe indicata.

NamedPipeClientStream(String, String, PipeDirection, PipeOptions)

Inizializza una nuova istanza della classe NamedPipeClientStream con i nomi della pipe e del server specificati nonché la direzione e le opzioni della pipe indicate.

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

Inizializza una nuova istanza della classe NamedPipeClientStream con i nomi della pipe e del server specificati nonché la direzione e le opzioni della pipe e il livello di rappresentazione di sicurezza indicati.

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

Inizializza una nuova istanza della classe NamedPipeClientStream con i nomi della pipe e del server specificati nonché la direzione e le opzioni della pipe, il livello di rappresentazione di sicurezza e la modalità di ereditarietà indicati.

Proprietà

CanRead

Ottiene un valore che indica se il flusso corrente supporta o meno le operazioni di lettura.

(Ereditato da PipeStream)
CanSeek

Ottiene un valore che indica se il flusso corrente supporta o meno le operazioni di ricerca.

(Ereditato da PipeStream)
CanTimeout

Ottiene un valore che determina se il flusso corrente prevede il timeout.

(Ereditato da Stream)
CanWrite

Ottiene un valore che indica se il flusso corrente supporta o meno le operazioni di scrittura.

(Ereditato da PipeStream)
InBufferSize

Ottiene la dimensione, in byte, del buffer in ingresso per una pipe.

(Ereditato da PipeStream)
IsAsync

Ottiene un valore che indica se un oggetto PipeStream è stato aperto in modalità sincrona o asincrona.

(Ereditato da PipeStream)
IsConnected

Ottiene o imposta un valore che indica se un oggetto PipeStream è connesso.

(Ereditato da PipeStream)
IsHandleExposed

Ottiene un valore che indica se viene esposto un handle a un oggetto PipeStream.

(Ereditato da PipeStream)
IsMessageComplete

Ottiene un valore indica se esistono altri dati nel messaggio restituito dalla più recente operazione di lettura.

(Ereditato da PipeStream)
Length

Ottiene la lunghezza di un flusso, in byte.

(Ereditato da PipeStream)
NumberOfServerInstances

Ottiene il numero di istanze del server che condividono lo stesso nome di pipe.

OutBufferSize

Ottiene la dimensione, in byte, del buffer in uscita per una pipe.

(Ereditato da PipeStream)
Position

Ottiene o imposta la posizione corrente del flusso corrente.

(Ereditato da PipeStream)
ReadMode

Ottiene o imposta la modalità di lettura per un oggetto PipeStream.

(Ereditato da PipeStream)
ReadTimeout

Ottiene o imposta un valore, in millisecondi, che determina per quanto tempo il flusso tenterà la lettura prima del timeout.

(Ereditato da Stream)
SafePipeHandle

Ottiene l'handle sicuro per l'estremità locale della pipe incapsulata dall'oggetto PipeStream corrente.

(Ereditato da PipeStream)
TransmissionMode

Ottiene la modalità di trasmissione della pipe supportata dalla pipe corrente.

(Ereditato da PipeStream)
WriteTimeout

Ottiene o imposta un valore, in millisecondi, che determina per quanto tempo il flusso tenterà la scrittura prima del timeout.

(Ereditato da Stream)

Metodi

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Inizia un'operazione di lettura asincrona.

(Ereditato da PipeStream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Inizia un'operazione di scrittura asincrona.

(Ereditato da PipeStream)
CheckPipePropertyOperations()

Verifica che la pipe si trovi in uno stato appropriato per ottenere o impostare le proprietà.

(Ereditato da PipeStream)
CheckReadOperations()

Verifica che la pipe sia connessa per le operazioni di lettura.

(Ereditato da PipeStream)
CheckWriteOperations()

Verifica che la pipe sia connessa per le operazioni di scrittura.

(Ereditato da PipeStream)
Close()

Chiude il flusso corrente e libera le risorse, come socket e handle di file, ad esso associate. Anziché chiamare questo metodo, assicurarsi che il flusso sia eliminato correttamente.

(Ereditato da Stream)
Connect()

Si connette a un server in attesa con un valore di timeout infinito.

Connect(Int32)

Effettua la connessione a un server in attesa entro il periodo di timeout specificato.

Connect(TimeSpan)

Si connette a un server in attesa entro il periodo di timeout specificato.

ConnectAsync()

Si connette in modalità asincrona a un server in attesa con un valore di timeout infinito.

ConnectAsync(CancellationToken)

Si connette in modalità asincrona a un server in attesa ed esegue il monitoraggio delle richieste di annullamento.

ConnectAsync(Int32)

Si connette in modalità asincrona a un server in attesa entro il periodo di timeout specificato.

ConnectAsync(Int32, CancellationToken)

Si connette in modalità asincrona a un server in attesa entro il periodo di timeout specificato ed esegue il monitoraggio delle richieste di annullamento.

ConnectAsync(TimeSpan, CancellationToken)

Si connette in modalità asincrona a un server in attesa entro il periodo di timeout specificato ed esegue il monitoraggio delle richieste di annullamento.

CopyTo(Stream)

Legge i byte dal flusso corrente e li scrive in un altro flusso. Entrambe le posizioni dei flussi sono avanzate dal numero di byte copiati.

(Ereditato da Stream)
CopyTo(Stream, Int32)

Legge tutti i byte dal flusso corrente e li scrive in un altro flusso, usando una dimensione di buffer specificata. Entrambe le posizioni dei flussi sono avanzate dal numero di byte copiati.

(Ereditato da Stream)
CopyToAsync(Stream)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso. Entrambe le posizioni dei flussi sono avanzate dal numero di byte copiati.

(Ereditato da Stream)
CopyToAsync(Stream, CancellationToken)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso, usando un token di annullamento specificato. Entrambe le posizioni dei flussi sono avanzate dal numero di byte copiati.

(Ereditato da Stream)
CopyToAsync(Stream, Int32)

Legge in modo asincrono tutti i byte dal flusso corrente e li scrive in un altro flusso, utilizzando una dimensione di buffer specificata. Entrambe le posizioni dei flussi sono avanzate dal numero di byte copiati.

(Ereditato da Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso, usando una dimensione di buffer specificata e un token di annullamento. Entrambe le posizioni dei flussi sono avanzate dal numero di byte copiati.

(Ereditato da Stream)
CreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto.

(Ereditato da MarshalByRefObject)
CreateWaitHandle()
Obsoleti.
Obsoleti.
Obsoleti.

Alloca un oggetto WaitHandle.

(Ereditato da Stream)
Dispose()

Rilascia tutte le risorse usate da Stream.

(Ereditato da Stream)
Dispose(Boolean)

Rilascia le risorse non gestite usate dalla classe PipeStream e facoltativamente le risorse gestite.

(Ereditato da PipeStream)
DisposeAsync()

Consente di liberare in modo asincrono le risorse non gestite utilizzate da Stream.

(Ereditato da Stream)
EndRead(IAsyncResult)

Termina una richiesta di lettura asincrona in sospeso.

(Ereditato da PipeStream)
EndWrite(IAsyncResult)

Termina una richiesta di scrittura asincrona in sospeso.

(Ereditato da PipeStream)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Finalize()

Rilascia le risorse non gestite ed esegue altre operazioni di pulizia prima che l'istanza di NamedPipeClientStream venga recuperata da Garbage Collection.

Flush()

Cancella i dati del buffer del flusso corrente e consente la scrittura dei dati memorizzati nel buffer nel dispositivo sottostante.

(Ereditato da PipeStream)
FlushAsync()

Cancella in modo asincrono i dati di tutti i buffer del flusso e determina la scrittura dei dati memorizzati nel buffer nel dispositivo sottostante.

(Ereditato da Stream)
FlushAsync(CancellationToken)

Cancella in modo asincrono il buffer del flusso corrente e consente la scrittura dei dati memorizzati nel buffer nel dispositivo sottostante.

(Ereditato da PipeStream)
GetAccessControl()

Ottiene un oggetto PipeSecurity che incapsula le voci dell'elenco di controllo di accesso (ACL) per la pipe descritta dall'oggetto PipeStream corrente.

(Ereditato da PipeStream)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleti.

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.

(Ereditato da MarshalByRefObject)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
InitializeHandle(SafePipeHandle, Boolean, Boolean)

Inizializza un oggetto PipeStream dall'oggetto SafePipeHandle specificato.

(Ereditato da PipeStream)
InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
ObjectInvariant()
Obsoleti.

Fornisce supporto per un oggetto Contract.

(Ereditato da Stream)
Read(Byte[], Int32, Int32)

Legge un blocco di byte da un flusso e scrive i dati in un buffer specificato che inizia in una posizione specificata per una lunghezza specificata.

(Ereditato da PipeStream)
Read(Span<Byte>)

Legge una sequenza di byte dal flusso corrente, li scrive in una matrice di byte e fa avanzare la posizione all'interno del flusso in base al numero di byte letti.

(Ereditato da PipeStream)
ReadAsync(Byte[], Int32, Int32)

Legge in modo asincrono una sequenza di byte dal flusso corrente e passa alla posizione successiva nel flusso in base al numero di byte letti.

(Ereditato da Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Legge in modo asincrono una sequenza di byte dal flusso corrente in una matrice di byte che inizia in una posizione specificata per un numero specificato di byte, fa avanzare la posizione all'interno del flusso in base al numero di byte letti e monitora le richieste di annullamento.

(Ereditato da PipeStream)
ReadAsync(Memory<Byte>, CancellationToken)

Legge in modo asincrono una sequenza di byte dal flusso corrente, li scrive in un intervallo di memoria di byte, fa avanzare la posizione all'interno del flusso in base al numero di byte letti e monitora le richieste di annullamento.

(Ereditato da PipeStream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Legge almeno un numero minimo di byte dal flusso corrente e avanza la posizione all'interno del flusso in base al numero di byte letti.

(Ereditato da Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Legge in modo asincrono almeno un numero minimo di byte dal flusso corrente, avanza la posizione all'interno del flusso in base al numero di byte letti e monitora le richieste di annullamento.

(Ereditato da Stream)
ReadByte()

Legge un byte da una pipe.

(Ereditato da PipeStream)
ReadExactly(Byte[], Int32, Int32)

count Legge il numero di byte dal flusso corrente e avanza la posizione all'interno del flusso.

(Ereditato da Stream)
ReadExactly(Span<Byte>)

Legge i byte dal flusso corrente e avanza la posizione all'interno del flusso finché non buffer viene riempita.

(Ereditato da Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Legge in modo count asincrono il numero di byte dal flusso corrente, sposta la posizione all'interno del flusso e monitora le richieste di annullamento.

(Ereditato da Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Legge in modo asincrono i byte dal flusso corrente, avanza la posizione all'interno del flusso finché non buffer viene riempita e monitora le richieste di annullamento.

(Ereditato da Stream)
Seek(Int64, SeekOrigin)

Imposta la posizione corrente del flusso corrente sul valore specificato.

(Ereditato da PipeStream)
SetAccessControl(PipeSecurity)

Applica le voci dell'elenco di controllo di accesso (ACL) specificate da un oggetto PipeSecurity nella pipe specificata dall'oggetto PipeStream corrente.

(Ereditato da PipeStream)
SetLength(Int64)

Imposta la lunghezza del flusso corrente sul valore specificato.

(Ereditato da PipeStream)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
WaitForPipeDrain()

Aspetta l'altra estremità della pipe per leggere tutti i byte inviati.

(Ereditato da PipeStream)
Write(Byte[], Int32, Int32)

Scrive un blocco di byte nel flusso corrente usando dati da un buffer.

(Ereditato da PipeStream)
Write(ReadOnlySpan<Byte>)

Scrive una sequenza di byte nel flusso corrente e fa avanzare la posizione corrente nel flusso del numero di byte scritti.

(Ereditato da PipeStream)
WriteAsync(Byte[], Int32, Int32)

Scrive in modo asincrono una sequenza di byte nel flusso corrente e passa alla posizione successiva nel flusso in base al numero di byte scritti.

(Ereditato da Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Scrive in modo asincrono un numero specificato di byte da una matrice di byte che inizia in una posizione specificata, fa avanzare la posizione corrente all'interno del flusso in base al numero di byte scritti e monitora le richieste di annullamento.

(Ereditato da PipeStream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Scrive in modo asincrono una sequenza di byte nel flusso corrente e passa alla posizione successiva all'interno del flusso corrente in base al numero di byte scritti e monitora le richieste di annullamento.

(Ereditato da PipeStream)
WriteByte(Byte)

Scrive un byte nel flusso corrente.

(Ereditato da PipeStream)

Metodi di estensione

CopyToAsync(Stream, PipeWriter, CancellationToken)

Legge in modo asincrono i byte da Stream e li scrive nel PipeWriter specificato usando un token di annullamento.

GetAccessControl(PipeStream)

Restituisce le informazioni di sicurezza di un flusso di pipe.

SetAccessControl(PipeStream, PipeSecurity)

Modifica gli attributi di sicurezza di un flusso di pipe esistente.

ConfigureAwait(IAsyncDisposable, Boolean)

Consente di configurare la modalità di esecuzione delle espressioni await per le attività restituite da un elemento disposable asincrono.

Si applica a