NamedPipeClientStream Classe

Definizione

Espone un Stream intorno a una named pipe, che supporta sia operazioni di lettura e scrittura sincrone che 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 oggetto NamedPipeServerStream in un processo padre. L'oggetto NamedPipeServerStream ha un valore PipeDirection di Out. Il server attende quindi la connessione di un oggetto NamedPipeClientStream in un processo figlio. In questo esempio entrambi i processi si trovano nello stesso computer e l'oggetto NamedPipeClientStream ha un valore PipeDirection di In. Il processo padre invia quindi una stringa fornita dall'utente al processo figlio. La stringa viene visualizzata nella console.

Questo esempio è relativo al processo client, che si connette al processo del server. Per l'intero esempio di codice, incluso il codice sia per il client di 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

Le named pipe forniscono pipe unidirezionale o duplex per la comunicazione tra un server pipe e uno o più client pipe. Le named pipe possono essere usate per la comunicazione interprocesso in locale o in rete. Un singolo nome di pipe può essere condiviso da più oggetti NamedPipeClientStream.

Qualsiasi processo può fungere da server o client named pipe 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 specificata.

NamedPipeClientStream(String)

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

NamedPipeClientStream(String, String)

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

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

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

NamedPipeClientStream(String, String, PipeDirection)

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

NamedPipeClientStream(String, String, PipeDirection, PipeOptions)

Inizializza una nuova istanza della classe NamedPipeClientStream con i nomi di pipe e server specificati e le opzioni della pipe e della pipe specificate.

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

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

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

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

Proprietà

CanRead

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

(Ereditato da PipeStream)
CanSeek

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

(Ereditato da PipeStream)
CanTimeout

Ottiene un valore che determina se il flusso corrente può verificarsi un timeout.

(Ereditato da Stream)
CanWrite

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

(Ereditato da PipeStream)
InBufferSize

Ottiene le dimensioni, 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 modo asincrono o sincrono.

(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 un handle di un oggetto PipeStream è esposto.

(Ereditato da PipeStream)
IsMessageComplete

Ottiene un valore che indica se sono presenti più dati nel messaggio restituito dall'operazione di lettura più recente.

(Ereditato da PipeStream)
Length

Ottiene la lunghezza di un flusso, espressa in byte.

(Ereditato da PipeStream)
NumberOfServerInstances

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

OutBufferSize

Ottiene le dimensioni, 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, espresso in millisecondi, che determina per quanto tempo il flusso tenterà di leggere prima del timeout.

(Ereditato da Stream)
SafePipeHandle

Ottiene l'handle sicuro per l'estremità locale della pipe incapsulato 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, espresso in millisecondi, che determina per quanto tempo il flusso tenterà di scrivere prima del timeout.

(Ereditato da Stream)

Metodi

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

Avvia un'operazione di lettura asincrona.

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

Avvia un'operazione di scrittura asincrona.

(Ereditato da PipeStream)
CheckPipePropertyOperations()

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

(Ereditato da PipeStream)
CheckReadOperations()

Verifica che la pipe sia in uno stato connesso per le operazioni di lettura.

(Ereditato da PipeStream)
CheckWriteOperations()

Verifica che la pipe si trova in uno stato connesso per le operazioni di scrittura.

(Ereditato da PipeStream)
Close()

Chiude il flusso corrente e rilascia tutte le risorse (ad esempio socket e handle di file) associate al flusso corrente. Invece di 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)

Si connette 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 modo asincrono a un server in attesa con un periodo di timeout infinito.

ConnectAsync(CancellationToken)

Si connette in modo asincrono a un server in attesa e monitora le richieste di annullamento.

ConnectAsync(Int32)

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

ConnectAsync(Int32, CancellationToken)

Si connette in modo asincrono a un server in attesa entro il periodo di timeout specificato e monitora le richieste di annullamento.

ConnectAsync(TimeSpan, CancellationToken)

Si connette in modo asincrono a un server in attesa entro il periodo di timeout specificato e monitora le 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 in base al numero di byte copiati.

(Ereditato da Stream)
CopyTo(Stream, Int32)

Legge i byte dal flusso corrente e li scrive in un altro flusso, usando una dimensione del buffer specificata. Entrambe le posizioni dei flussi sono avanzate in base al 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 in base al 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 in base al numero di byte copiati.

(Ereditato da Stream)
CopyToAsync(Stream, Int32)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso, usando una dimensione del buffer specificata. Entrambe le posizioni dei flussi sono avanzate in base al 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 del buffer e un token di annullamento specificati. Entrambe le posizioni dei flussi sono avanzate in base al numero di byte copiati.

(Ereditato da Stream)
CreateObjRef(Type)

Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto.

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

Alloca un oggetto WaitHandle.

(Ereditato da Stream)
Dispose()

Rilascia tutte le risorse usate dal Stream.

(Ereditato da Stream)
Dispose(Boolean)

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

(Ereditato da PipeStream)
DisposeAsync()

Rilascia in modo asincrono le risorse non gestite usate dal 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 risorse non gestite ed esegue altre operazioni di pulizia prima che l'istanza di NamedPipeClientStream venga recuperata da Garbage Collection.

Flush()

Cancella il buffer per il flusso corrente e determina la scrittura dei dati memorizzati nel buffer nel dispositivo sottostante.

(Ereditato da PipeStream)
FlushAsync()

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

(Ereditato da Stream)
FlushAsync(CancellationToken)

Cancella in modo asincrono il buffer per il flusso corrente e determina 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.

Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
GetType()

Ottiene il 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 del Objectcorrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia superficiale dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
ObjectInvariant()
Obsoleti.

Fornisce il supporto per un Contract.

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

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

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

Legge una sequenza di byte dal flusso corrente, le scrive in una matrice di byte e sposta in avanti 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 sposta in avanti la posizione all'interno del 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 a una matrice di byte a partire da una posizione specificata per un numero specificato di byte, sposta 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, sposta in avanti 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 sposta in avanti 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, sposta in avanti 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)

Legge count numero di byte dal flusso corrente e sposta in avanti la posizione all'interno del flusso.

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

Legge i byte dal flusso corrente e sposta in avanti la posizione all'interno del flusso fino a quando il buffer non viene riempito.

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

Legge in modo asincrono count numero di byte dal flusso corrente, sposta in avanti 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, sposta la posizione all'interno del flusso fino a quando il buffer non viene riempito 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 alla 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()

Attende che l'altra estremità della pipe legga 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 sposta in avanti la posizione corrente all'interno del flusso in base al numero di byte scritti.

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

Scrive in modo asincrono una sequenza di byte nel flusso corrente e sposta in avanti la posizione corrente all'interno del 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 a partire da una posizione specificata, sposta in avanti 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, sposta in avanti la posizione corrente all'interno del flusso 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 dal Stream e li scrive nel PipeWriterspecificato 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)

Configura il modo in cui verranno eseguite le attese nelle attività restituite da un oggetto eliminabile asincrono.

Si applica a