Condividi tramite


NamedPipeServerStream Classe

Definizione

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

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

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 con 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 del server, che usa la classe NamedPipeServerStream. 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 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

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

NamedPipeServerStream(PipeDirection, Boolean, Boolean, SafePipeHandle)

Inizializza una nuova istanza della classe NamedPipeServerStream dall'handle di pipe specificato.

NamedPipeServerStream(String)

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

NamedPipeServerStream(String, PipeDirection)

Inizializza una nuova istanza della classe NamedPipeServerStream con il nome della pipe e la direzione della pipe specificati.

NamedPipeServerStream(String, PipeDirection, Int32)

Inizializza una nuova istanza della classe NamedPipeServerStream con il nome della pipe, la direzione della pipe e il numero massimo di istanze del server specificate.

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode)

Inizializza una nuova istanza della classe NamedPipeServerStream con il nome della pipe, la direzione della pipe, il numero massimo di istanze del server e la modalità di trasmissione specificati.

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

Inizializza una nuova istanza della classe NamedPipeServerStream con il nome della pipe, la direzione della pipe, il numero massimo di istanze del server, la modalità di trasmissione e le opzioni pipe specificate.

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

Inizializza una nuova istanza della classe NamedPipeServerStream con il nome della pipe, la direzione della pipe, il numero massimo di istanze del server, la modalità di trasmissione, le opzioni della pipe e le dimensioni consigliate in e out del buffer.

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

Inizializza una nuova istanza della classe NamedPipeServerStream con il nome della pipe, la direzione della pipe, il numero massimo di istanze del server, la modalità di trasmissione, le opzioni pipe, le dimensioni consigliate nel buffer e la sicurezza tramite pipe.

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

Inizializza una nuova istanza della classe NamedPipeServerStream con il nome della pipe, la direzione della pipe, il numero massimo di istanze del server, la modalità di trasmissione, le opzioni pipe, le dimensioni consigliate nel buffer, la sicurezza della pipe e la modalità di ereditarietà.

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

Inizializza una nuova istanza della classe NamedPipeServerStream con il nome della pipe, la direzione della pipe, il numero massimo di istanze del server, la modalità di trasmissione, le opzioni pipe, le dimensioni consigliate nel buffer, la sicurezza della pipe, la modalità di ereditarietà e i diritti di accesso tramite pipe.

Campi

MaxAllowedServerInstances

Rappresenta il numero massimo di istanze del server consentite dalle risorse di sistema.

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

Avvia un'operazione asincrona per attendere la connessione di un client.

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)

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

Disconnette la connessione corrente.

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

Termina un'operazione asincrona per attendere la connessione di un client.

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

Ottiene il nome utente del client sull'altra estremità della pipe.

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

Chiama un delegato durante la rappresentazione del client.

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

Attende che un client si connetta a questo oggetto NamedPipeServerStream.

WaitForConnectionAsync()

Attende in modo asincrono che un client si connetta a questo oggetto NamedPipeServerStream.

WaitForConnectionAsync(CancellationToken)

Attende in modo asincrono che un client si connetta a questo oggetto NamedPipeServerStream e monitori le richieste di annullamento.

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