Freigeben über


NamedPipeClientStream Klasse

Definition

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

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

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 erstellt. Das NamedPipeServerStream-Objekt weist einen PipeDirection Wert von Outauf. 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 Clientprozess vorgesehen, der eine Verbindung mit dem Serverprozess herstellt. 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 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

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

NamedPipeClientStream(PipeDirection, Boolean, Boolean, SafePipeHandle)

Initialisiert eine neue Instanz der NamedPipeClientStream Klasse für den angegebenen Pipehandle mit der angegebenen Piperichtung.

NamedPipeClientStream(String)

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

NamedPipeClientStream(String, String)

Initialisiert eine neue Instanz der NamedPipeClientStream Klasse mit den angegebenen Pipe- und Servernamen.

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

Initialisiert eine neue Instanz der NamedPipeClientStream Klasse mit den angegebenen Pipe- und Servernamen sowie den angegebenen Pipeoptionen, Sicherheitsidentitätswechselebene und Vererbungsmodus.

NamedPipeClientStream(String, String, PipeDirection)

Initialisiert eine neue Instanz der NamedPipeClientStream Klasse mit den angegebenen Pipe- und Servernamen und der angegebenen Piperichtung.

NamedPipeClientStream(String, String, PipeDirection, PipeOptions)

Initialisiert eine neue Instanz der NamedPipeClientStream Klasse mit den angegebenen Pipe- und Servernamen sowie den angegebenen Piperichtungs- und Pipeoptionen.

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

Initialisiert eine neue Instanz der NamedPipeClientStream Klasse mit den angegebenen Pipe- und Servernamen sowie die angegebene Piperichtung, Pipeoptionen und Sicherheitsidentitätswechselebene.

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

Initialisiert eine neue Instanz der NamedPipeClientStream-Klasse mit den angegebenen Pipe- und Servernamen sowie die angegebene Piperichtung, Pipeoptionen, Sicherheitsidentitätswechselebene und Vererbungsmodus.

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

Ruft die Anzahl der Serverinstanzen ab, die denselben Pipenamen aufweisen.

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

Stellt eine Verbindung mit einem Warteserver mit einem unendlichen Timeoutwert hergestellt.

Connect(Int32)

Stellt innerhalb des angegebenen Timeoutzeitraums eine Verbindung mit einem Warteserver hergestellt.

Connect(TimeSpan)

Stellt eine Verbindung mit einem Warteserver innerhalb des angegebenen Timeoutzeitraums hergestellt.

ConnectAsync()

Stellt asynchron eine Verbindung mit einem Warteserver mit einem unendlichen Timeoutzeitraum hergestellt.

ConnectAsync(CancellationToken)

Stellt asynchron eine Verbindung mit einem Warteserver und überwacht Abbruchanforderungen.

ConnectAsync(Int32)

Stellt eine asynchrone Verbindung mit einem Warteserver innerhalb des angegebenen Timeoutzeitraums hergestellt.

ConnectAsync(Int32, CancellationToken)

Stellt eine asynchrone Verbindung mit einem Warteserver innerhalb des angegebenen Timeoutzeitraums und überwacht Abbruchanforderungen.

ConnectAsync(TimeSpan, CancellationToken)

Stellt eine asynchrone Verbindung mit einem Warteserver innerhalb des angegebenen Timeoutzeitraums und überwacht Abbruchanforderungen.

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)
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)
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 NamedPipeClientStream 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)
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)
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)
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: