NamedPipeServerStream Klasse

Definition

Macht eine Stream um eine benannte Pipe verfügbar, die synchrone und asynchrone Lese- und Schreibvorgänge unterstützt.

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
Vererbung
NamedPipeServerStream
Vererbung
NamedPipeServerStream

Beispiele

Im folgenden Beispiel wird eine Möglichkeit zum Senden einer Zeichenfolge aus einem übergeordneten Prozess an einen untergeordneten Prozess auf demselben Computer mithilfe von benannten Rohren veranschaulicht. In diesem Beispiel wird ein NamedPipeServerStream-Objekt in einem übergeordneten Prozess mit einem PipeDirection Wert von Outerstellt. Der Server wartet dann auf ein NamedPipeClientStream-Objekt in einem untergeordneten Prozess, um eine Verbindung damit herzustellen. In diesem Beispiel befinden sich beide Prozesse auf demselben Computer, und das NamedPipeClientStream-Objekt weist einen PipeDirection Wert von Inauf. Der übergeordnete Prozess sendet dann eine vom Benutzer bereitgestellte Zeichenfolge an den untergeordneten Prozess. Die Zeichenfolge wird in der Konsole angezeigt.

Dieses Beispiel ist für den Serverprozess bestimmt, der die NamedPipeServerStream Klasse verwendet. Das gesamte Codebeispiel, einschließlich des Codes für den Pipeclient und den Server, finden Sie unter How to: Use Named Pipes for Network Interprocess Communication.

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

Hinweise

Benannte Rohre bieten unidirektionale oder Duplexrohre für die Kommunikation zwischen einem Rohrserver und einem oder mehreren Rohrclients. Benannte Rohre können für die lokale Kommunikation oder über ein Netzwerk verwendet werden. Ein einzelner Pipename kann von mehreren NamedPipeClientStream Objekten gemeinsam genutzt werden.

Jeder Prozess kann entweder als benannter Pipeserver oder Client oder beides fungieren.

Konstruktoren

NamedPipeServerStream(PipeDirection, Boolean, Boolean, SafePipeHandle)

Initialisiert eine neue Instanz der NamedPipeServerStream Klasse aus dem angegebenen Pipehandle.

NamedPipeServerStream(String)

Initialisiert eine neue Instanz der NamedPipeServerStream Klasse mit dem angegebenen Pipenamen.

NamedPipeServerStream(String, PipeDirection)

Initialisiert eine neue Instanz der NamedPipeServerStream Klasse mit dem angegebenen Pipenamen und der Angegebenen Piperichtung.

NamedPipeServerStream(String, PipeDirection, Int32)

Initialisiert eine neue Instanz der NamedPipeServerStream-Klasse mit dem angegebenen Pipenamen, der Piperichtung und der maximalen Anzahl von Serverinstanzen.

NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode)

Initialisiert eine neue Instanz der NamedPipeServerStream Klasse mit dem angegebenen Pipenamen, der Piperichtung, der maximalen Anzahl von Serverinstanzen und dem Übertragungsmodus.

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

Initialisiert eine neue Instanz der NamedPipeServerStream-Klasse mit dem angegebenen Pipenamen, der Piperichtung, der maximalen Anzahl von Serverinstanzen, übertragungsmodus und Pipeoptionen.

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

Initialisiert eine neue Instanz der NamedPipeServerStream Klasse mit dem angegebenen Pipenamen, der Piperichtung, der maximalen Anzahl von Serverinstanzen, dem Übertragungsmodus, den Pipeoptionen und den empfohlenen Puffergrößen.

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

Initialisiert eine neue Instanz der NamedPipeServerStream-Klasse mit dem angegebenen Pipenamen, der Piperichtung, der maximalen Anzahl von Serverinstanzen, übertragungsmodus, Pipeoptionen, empfohlenen Puffergrößen und Pipesicherheit.

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

Initialisiert eine neue Instanz der NamedPipeServerStream-Klasse mit dem angegebenen Pipenamen, der Piperichtung, der maximalen Anzahl von Serverinstanzen, übertragungsmodus, Pipeoptionen, empfohlen in puffergrößen, Pipesicherheit und Vererbbarkeitsmodus.

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

Initialisiert eine neue Instanz der NamedPipeServerStream-Klasse mit dem angegebenen Pipenamen, der Piperichtung, der maximalen Anzahl von Serverinstanzen, übertragungsmodus, Pipeoptionen, empfohlen in und out Puffergrößen, Pipesicherheit, Vererbbarkeitsmodus und Pipezugriffsrechte.

Felder

MaxAllowedServerInstances

Stellt die maximale Anzahl von Serverinstanzen dar, die die Systemressourcen zulassen.

Eigenschaften

CanRead

Ruft einen Wert ab, der angibt, ob der aktuelle Datenstrom Lesevorgänge unterstützt.

(Geerbt von PipeStream)
CanSeek

Ruft einen Wert ab, der angibt, ob der aktuelle Datenstrom Suchvorgänge unterstützt.

(Geerbt von PipeStream)
CanTimeout

Ruft einen Wert ab, der bestimmt, ob der aktuelle Datenstrom Timeout ausführen kann.

(Geerbt von Stream)
CanWrite

Ruft einen Wert ab, der angibt, ob der aktuelle Datenstrom Schreibvorgänge unterstützt.

(Geerbt von PipeStream)
InBufferSize

Ruft die Größe des eingehenden Puffers für eine Pipe in Bytes ab.

(Geerbt von PipeStream)
IsAsync

Ruft einen Wert ab, der angibt, ob ein PipeStream -Objekt asynchron oder synchron geöffnet wurde.

(Geerbt von PipeStream)
IsConnected

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob ein PipeStream -Objekt verbunden ist.

(Geerbt von PipeStream)
IsHandleExposed

Ruft einen Wert ab, der angibt, ob ein Handle für ein PipeStream -Objekt verfügbar gemacht wird.

(Geerbt von PipeStream)
IsMessageComplete

Ruft einen Wert ab, der angibt, ob mehr Daten in der Nachricht vorhanden sind, die vom letzten Lesevorgang zurückgegeben wird.

(Geerbt von PipeStream)
Length

Ruft die Länge eines Datenstroms in Byte ab.

(Geerbt von PipeStream)
OutBufferSize

Ruft die Größe des ausgehenden Puffers für eine Pipe in Bytes ab.

(Geerbt von PipeStream)
Position

Dient zum Abrufen oder Festlegen der aktuellen Position des aktuellen Datenstroms.

(Geerbt von PipeStream)
ReadMode

Dient zum Abrufen oder Festlegen des Lesemodus für ein PipeStream -Objekt.

(Geerbt von PipeStream)
ReadTimeout

Dient zum Abrufen oder Festlegen eines Werts in Millisekunden, der bestimmt, wie lange der Datenstrom vor dem Timeout zu lesen versucht.

(Geerbt von Stream)
SafePipeHandle

Ruft den sicheren Handle für das lokale Ende der Pipe ab, die das aktuelle PipeStream -Objekt kapselt.

(Geerbt von PipeStream)
TransmissionMode

Ruft den vom aktuellen Rohr unterstützten Leitungsübertragungsmodus ab.

(Geerbt von PipeStream)
WriteTimeout

Dient zum Abrufen oder Festlegen eines Werts in Millisekunden, der bestimmt, wie lange der Datenstrom versucht, vor dem Timeout zu schreiben.

(Geerbt von Stream)

Methoden

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

Startet einen asynchronen Lesevorgang.

(Geerbt von PipeStream)
BeginWaitForConnection(AsyncCallback, Object)

Startet einen asynchronen Vorgang, um zu warten, bis ein Client eine Verbindung herstellt.

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

Startet einen asynchronen Schreibvorgang.

(Geerbt von PipeStream)
CheckPipePropertyOperations()

Überprüft, ob sich die Pipe in einem ordnungsgemäßen Zustand für das Abrufen oder Festlegen von Eigenschaften befindet.

(Geerbt von PipeStream)
CheckReadOperations()

Überprüft, ob sich die Rohre in einem verbundenen Zustand für Lesevorgänge befinden.

(Geerbt von PipeStream)
CheckWriteOperations()

Überprüft, ob sich die Pipe in einem verbundenen Zustand für Schreibvorgänge befindet.

(Geerbt von PipeStream)
Close()

Schließt den aktuellen Datenstrom und gibt alle Ressourcen (z. B. Sockets und Dateihandles) frei, die dem aktuellen Datenstrom zugeordnet sind. Anstatt diese Methode aufzurufen, stellen Sie sicher, dass der Datenstrom ordnungsgemäß verworfen ist.

(Geerbt von Stream)
CopyTo(Stream)

Liest die Bytes aus dem aktuellen Datenstrom und schreibt sie in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert.

(Geerbt von Stream)
CopyTo(Stream, Int32)

Liest die Bytes aus dem aktuellen Datenstrom und schreibt sie mithilfe einer angegebenen Puffergröße in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert.

(Geerbt von Stream)
CopyToAsync(Stream)

Liest die Bytes asynchron aus dem aktuellen Datenstrom und schreibt sie in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert.

(Geerbt von Stream)
CopyToAsync(Stream, CancellationToken)

Liest die Bytes asynchron aus dem aktuellen Datenstrom und schreibt sie mithilfe eines angegebenen Abbruchtokens in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert.

(Geerbt von Stream)
CopyToAsync(Stream, Int32)

Liest die Bytes asynchron aus dem aktuellen Datenstrom und schreibt sie mithilfe einer angegebenen Puffergröße in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert.

(Geerbt von Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Liest asynchron die Bytes aus dem aktuellen Datenstrom und schreibt sie in einen anderen Datenstrom, wobei eine angegebene Puffergröße und ein Abbruchtoken verwendet wird. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert.

(Geerbt von Stream)
CreateObjRef(Type)

Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird.

(Geerbt von MarshalByRefObject)
CreateWaitHandle()
Veraltet.
Veraltet.
Veraltet.

Weist ein WaitHandle-Objekt zu.

(Geerbt von Stream)
Disconnect()

Trennt die aktuelle Verbindung.

Dispose()

Gibt alle vom Streamverwendeten Ressourcen frei.

(Geerbt von Stream)
Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von der PipeStream Klasse verwendet werden, und gibt optional die verwalteten Ressourcen frei.

(Geerbt von PipeStream)
DisposeAsync()

Gibt asynchron die nicht verwalteten Ressourcen frei, die vom Streamverwendet werden.

(Geerbt von Stream)
EndRead(IAsyncResult)

Beendet eine ausstehende asynchrone Leseanforderung.

(Geerbt von PipeStream)
EndWaitForConnection(IAsyncResult)

Beendet einen asynchronen Vorgang, um zu warten, bis ein Client eine Verbindung herstellt.

EndWrite(IAsyncResult)

Beendet eine ausstehende asynchrone Schreibanforderung.

(Geerbt von PipeStream)
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
Finalize()

Gibt nicht verwaltete Ressourcen frei und führt weitere Bereinigungsvorgänge aus, bevor die NamedPipeServerStream Instanz von der Garbage Collection zurückgefordert wird.

Flush()

Löscht den Puffer für den aktuellen Datenstrom und bewirkt, dass alle gepufferten Daten auf das zugrunde liegende Gerät geschrieben werden.

(Geerbt von PipeStream)
FlushAsync()

Löscht asynchron alle Puffer für diesen Datenstrom und bewirkt, dass alle gepufferten Daten auf das zugrunde liegende Gerät geschrieben werden.

(Geerbt von Stream)
FlushAsync(CancellationToken)

Löscht den Puffer für den aktuellen Datenstrom asynchron und bewirkt, dass alle gepufferten Daten auf das zugrunde liegende Gerät geschrieben werden.

(Geerbt von PipeStream)
GetAccessControl()

Ruft ein PipeSecurity -Objekt ab, das die Zugriffssteuerungslisteneinträge (Access Control List, ACL) für die durch das aktuelle PipeStream -Objekt beschriebene Pipe kapselt.

(Geerbt von PipeStream)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetImpersonationUserName()

Ruft den Benutzernamen des Clients am anderen Ende der Pipe ab.

GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinie für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeHandle(SafePipeHandle, Boolean, Boolean)

Initialisiert ein PipeStream -Objekt aus dem angegebenen SafePipeHandle -Objekt.

(Geerbt von PipeStream)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

(Geerbt von MarshalByRefObject)
ObjectInvariant()
Veraltet.

Bietet Unterstützung für eine Contract.

(Geerbt von Stream)
Read(Byte[], Int32, Int32)

Liest einen Byteblock aus einem Datenstrom und schreibt die Daten an einen angegebenen Puffer, beginnend an einer angegebenen Position für eine angegebene Länge.

(Geerbt von PipeStream)
Read(Span<Byte>)

Liest eine Abfolge von Bytes aus dem aktuellen Datenstrom, schreibt sie in ein Bytearray und wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes.

(Geerbt von PipeStream)
ReadAsync(Byte[], Int32, Int32)

Liest asynchron eine Abfolge von Bytes aus dem aktuellen Datenstrom und wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes.

(Geerbt von Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Liest asynchron eine Bytesequenz aus dem aktuellen Datenstrom in ein Bytearray ab einer angegebenen Position für eine angegebene Anzahl von Bytes, führt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes durch und überwacht Abbruchanforderungen.

(Geerbt von PipeStream)
ReadAsync(Memory<Byte>, CancellationToken)

Liest asynchron eine Abfolge von Bytes aus dem aktuellen Datenstrom, schreibt sie in einen Bytespeicherbereich, wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes und überwacht Abbruchanforderungen.

(Geerbt von PipeStream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Liest mindestens eine Minimale Anzahl von Bytes aus dem aktuellen Datenstrom und wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes.

(Geerbt von Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Liest asynchron mindestens eine Mindestanzahl von Bytes aus dem aktuellen Datenstrom, wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes und überwacht Abbruchanforderungen.

(Geerbt von Stream)
ReadByte()

Liest ein Byte aus einer Pfeife.

(Geerbt von PipeStream)
ReadExactly(Byte[], Int32, Int32)

Liest count Anzahl von Bytes aus dem aktuellen Datenstrom und wechselt die Position innerhalb des Datenstroms.

(Geerbt von Stream)
ReadExactly(Span<Byte>)

Liest Bytes aus dem aktuellen Datenstrom und wechselt die Position innerhalb des Datenstroms, bis die buffer gefüllt ist.

(Geerbt von Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Liest asynchron count Anzahl von Bytes aus dem aktuellen Datenstrom, wechselt die Position innerhalb des Datenstroms und überwacht Abbruchanforderungen.

(Geerbt von Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Liest asynchron Bytes aus dem aktuellen Datenstrom, wechselt die Position innerhalb des Datenstroms, bis die buffer gefüllt ist, und überwacht Abbruchanforderungen.

(Geerbt von Stream)
RunAsClient(PipeStreamImpersonationWorker)

Ruft eine Stellvertretung auf, während der Identitätswechsel des Clients erfolgt.

Seek(Int64, SeekOrigin)

Legt die aktuelle Position des aktuellen Datenstroms auf den angegebenen Wert fest.

(Geerbt von PipeStream)
SetAccessControl(PipeSecurity)

Wendet die durch ein PipeSecurity -Objekt angegebenen Zugriffssteuerungslisteneinträge (Access Control List, ACL) auf die durch das aktuelle PipeStream -Objekt angegebene Pipe an.

(Geerbt von PipeStream)
SetLength(Int64)

Legt die Länge des aktuellen Datenstroms auf den angegebenen Wert fest.

(Geerbt von PipeStream)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
WaitForConnection()

Wartet, bis ein Client eine Verbindung mit diesem NamedPipeServerStream-Objekt herstellt.

WaitForConnectionAsync()

Wartet asynchron, bis ein Client eine Verbindung mit diesem NamedPipeServerStream-Objekt herstellt.

WaitForConnectionAsync(CancellationToken)

Wartet asynchron, bis ein Client eine Verbindung mit diesem NamedPipeServerStream-Objekt herstellt und Abbruchanforderungen überwacht.

WaitForPipeDrain()

Wartet auf das andere Ende der Pipe, um alle gesendeten Bytes zu lesen.

(Geerbt von PipeStream)
Write(Byte[], Int32, Int32)

Schreibt einen Byteblock mithilfe von Daten aus einem Puffer in den aktuellen Datenstrom.

(Geerbt von PipeStream)
Write(ReadOnlySpan<Byte>)

Schreibt eine Folge von Bytes in den aktuellen Datenstrom und wechselt die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes.

(Geerbt von PipeStream)
WriteAsync(Byte[], Int32, Int32)

Schreibt asynchron eine Bytesequenz in den aktuellen Datenstrom und wechselt die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes.

(Geerbt von Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Schreibt asynchron eine angegebene Anzahl von Bytes aus einem Bytearray beginnend an einer angegebenen Position, wechselt die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes und überwacht Abbruchanforderungen.

(Geerbt von PipeStream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Schreibt asynchron eine Bytesequenz in den aktuellen Datenstrom, wechselt die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes und überwacht Abbruchanforderungen.

(Geerbt von PipeStream)
WriteByte(Byte)

Schreibt ein Byte in den aktuellen Datenstrom.

(Geerbt von PipeStream)

Erweiterungsmethoden

CopyToAsync(Stream, PipeWriter, CancellationToken)

Liest die Bytes asynchron aus dem Stream und schreibt sie mithilfe eines Abbruchtokens in das angegebene PipeWriter.

GetAccessControl(PipeStream)

Gibt die Sicherheitsinformationen eines Rohrdatenstroms zurück.

SetAccessControl(PipeStream, PipeSecurity)

Ändert die Sicherheitsattribute eines vorhandenen Pipestreams.

ConfigureAwait(IAsyncDisposable, Boolean)

Konfiguriert, wie auf die von einem asynchronen Einweg zurückgegebenen Aufgaben gewartet wird.

Gilt für: