AnonymousPipeClientStream Classe

Definizione

Espone il lato client di un flusso di pipe anonimo, che supporta sia operazioni di lettura e scrittura sincrone che asincrone (senza supporto per l'annullamento nelle piattaforme 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
Ereditarietà
AnonymousPipeClientStream

Esempio

Nell'esempio seguente viene inviata una stringa da un processo padre a un processo figlio usando pipe anonime. In questo esempio viene creato un AnonymousPipeServerStream oggetto in un processo padre con un PipeDirection valore .Out Crea anche un AnonymousPipeClientStream oggetto in un processo figlio con un PipeDirection valore .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, avviato dal processo del server. Assegnare un nome all'eseguibile risultante dal codice pipeClient.exe client e copiarlo nella stessa directory del file eseguibile del server quando si esegue questo esempio. Per l'intero esempio di codice, incluso il codice per il client di pipe e il server, vedere Procedura: Usare le pipe anonime per la comunicazione interprocesso locale.

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

Commenti

Le pipe anonime consentono di fornire comunicazioni interprocesso sicure e sicure tra processi figlio e padre. La AnonymousPipeClientStream classe consente a un processo figlio di connettersi e scambiare informazioni con un processo padre.

Le pipe anonime sono pipe unidirezionale senza nome che in genere trasferiscono dati tra processi padre e figlio. Le pipe anonime sono sempre locali; non possono essere usati in rete. Il PipeDirection valore non InOut è supportato perché le pipe anonime sono definite come unidirezionale.

Le pipe anonime non supportano la PipeTransmissionMode.Message modalità di lettura.

Il lato client di una pipe anonima deve essere creato da un handle pipe fornito dal lato server chiamando il GetClientHandleAsString metodo . La stringa viene quindi passata come parametro durante la creazione del processo client. Dal processo client, viene passato al AnonymousPipeClientStream costruttore come pipeHandleAsString parametro .

In Windows, le operazioni di lettura e scrittura asincrone (sovrapposte) non sono supportate dalle pipe anonime (vedere Operazioni pipe dianonymous). La classe AnonymousPipeClientStream continuerà a pianificare il lavoro sul pool di thread nelle piattaforme Windows in modo che le operazioni asincrone Stream funzionino, ma l'annullamento di tali operazioni non è supportato.

Costruttori

Nome Descrizione
AnonymousPipeClientStream(PipeDirection, SafePipeHandle)

Inizializza una nuova istanza della AnonymousPipeClientStream classe dall'handle specificato.

AnonymousPipeClientStream(PipeDirection, String)

Inizializza una nuova istanza della AnonymousPipeClientStream classe con la direzione della pipe specificata e una rappresentazione di stringa dell'handle pipe.

AnonymousPipeClientStream(String)

Inizializza una nuova istanza della AnonymousPipeClientStream classe con la rappresentazione di stringa specificata dell'handle di pipe.

Proprietà

Nome Descrizione
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 PipeStream oggetto è stato aperto in modo asincrono o sincrono.

(Ereditato da PipeStream)
IsConnected

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

(Ereditato da PipeStream)
IsHandleExposed

Ottiene un valore che indica se un handle per un PipeStream oggetto è 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)
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

Imposta la modalità di lettura per l'oggetto AnonymousPipeClientStream .

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 corrente PipeStream .

(Ereditato da PipeStream)
TransmissionMode

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

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

Nome Descrizione
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)
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)
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)
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, 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)
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)

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

Alloca un WaitHandle oggetto .

(Ereditato da Stream)
Dispose()

Rilascia tutte le risorse usate da Stream.

(Ereditato da Stream)
Dispose(Boolean)

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

(Ereditato da PipeStream)
DisposeAsync()

Rilascia in modo asincrono le risorse non gestite usate 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 risorse non gestite ed esegue altre operazioni di pulizia prima che l'istanza AnonymousPipeClientStream 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 tutti i buffer per questo flusso, determina la scrittura di tutti i dati memorizzati nel buffer nel dispositivo sottostante e monitora le richieste di annullamento.

(Ereditato da Stream)
GetAccessControl()

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

(Ereditato da PipeStream)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()

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 PipeStream oggetto dall'oggetto specificato SafePipeHandle .

(Ereditato da PipeStream)
InitializeLifetimeService()

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 corrente MarshalByRefObject .

(Ereditato da MarshalByRefObject)
ObjectInvariant()
Obsoleti.

Fornisce il 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 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, 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(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(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)
ReadByte()

Legge un byte da una pipe.

(Ereditato da PipeStream)
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 PipeSecurity oggetto alla pipe specificata dall'oggetto corrente PipeStream .

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

Nome Descrizione
ConfigureAwait(IAsyncDisposable, Boolean)

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

Si applica a