Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
AnonymousPipeServerStream-Klasse
Macht einen Stream um eine anonyme Pipe verfügbar, der synchrone und asynchrone Lese- und Schreibvorgänge unterstützt.
System.MarshalByRefObject
System.IO.Stream
System.IO.Pipes.PipeStream
System.IO.Pipes.AnonymousPipeServerStream
Assembly: System.Core (in System.Core.dll)
Der AnonymousPipeServerStream-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
AnonymousPipeServerStream() | Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse. |
|
AnonymousPipeServerStream(PipeDirection) | Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse mit der angegebenen Piperichtung. |
|
AnonymousPipeServerStream(PipeDirection, HandleInheritability) | Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse mit der angegebenen Piperichtung und dem angegebenen Vererbbarkeitsmodus. |
|
AnonymousPipeServerStream(PipeDirection, SafePipeHandle, SafePipeHandle) | Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse aus den angegebenen Pipehandles. |
|
AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32) | Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse mit der angegebenen Piperichtung, dem angegebenen Vererbbarkeitsmodus und der angegebenen Puffergröße. |
|
AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32, PipeSecurity) | Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse mit der angegebenen Piperichtung, dem angegebenen Vererbbarkeitsmodus, der angegebenen Puffergröße und der angegebenen Pipesicherheit. |
| Name | Beschreibung | |
|---|---|---|
|
CanRead | Ruft einen Wert ab, der angibt, ob der aktuelle Stream Lesevorgänge unterstützt. (Von PipeStream geerbt.) |
|
CanSeek | Ruft einen Wert ab, der angibt, ob der aktuelle Stream Suchvorgänge unterstützt. (Von PipeStream geerbt.) |
|
CanTimeout | Ruft einen Wert ab, der bestimmt, ob für den aktuellen Stream ein Timeout möglich ist. (Von Stream geerbt.) |
|
CanWrite | Ruft einen Wert ab, der angibt, ob der aktuelle Stream Schreibvorgänge unterstützt. (Von PipeStream geerbt.) |
|
ClientSafePipeHandle | Ruft das sichere Handle für das AnonymousPipeClientStream-Objekt ab, das gegenwärtig mit dem AnonymousPipeServerStream-Objekt verbunden ist. |
|
InBufferSize | Ruft die Größe des Eingangspuffers für eine Pipe in Bytes ab. (Von PipeStream geerbt.) |
|
IsAsync | Ruft einen Wert ab, der angibt, ob ein PipeStream-Objekt asynchron oder synchron geöffnet wurde. (Von PipeStream geerbt.) |
|
IsConnected | Ruft einen Wert ab, der angibt, ob ein PipeStream-Objekt verbunden ist, oder legt diesen fest. (Von PipeStream geerbt.) |
|
IsHandleExposed | Ruft einen Wert ab, der angibt, ob ein Handle für ein PipeStream-Objekt verfügbar gemacht wurde. (Von PipeStream geerbt.) |
|
IsMessageComplete | Ruft einen Wert ab, der angibt, ob in der vom letzten Lesevorgang zurückgegebenen Meldung weitere Daten vorhanden sind. (Von PipeStream geerbt.) |
|
Length | Ruft die Länge eines Streams in Bytes ab. (Von PipeStream geerbt.) |
|
OutBufferSize | Ruft die Größe des Ausgangspuffers für eine Pipe in Bytes ab. (Von PipeStream geerbt.) |
|
Position | Ruft die aktuelle Position des aktuellen Streams ab oder legt diese fest. (Von PipeStream geerbt.) |
|
ReadMode | Legt den Lesemodus für das AnonymousPipeServerStream-Objekt fest. Für anonyme Pipes muss der Übertragungsmodus Byte sein. (Überschreibt PipeStream.ReadMode.) |
|
ReadTimeout | Ruft einen Wert in Millisekunden ab, der bestimmt, wie lange der Stream versucht, Lesevorgänge durchzuführen, bevor ein Timeout auftritt, oder legt diesen fest. (Von Stream geerbt.) |
|
SafePipeHandle | Ruft das sichere Handle für das lokale Ende der Pipe ab, die vom aktuellen PipeStream-Objekt gekapselt wird. (Von PipeStream geerbt.) |
|
TransmissionMode | Ruft den von der aktuellen Pipe unterstützten Pipeübertragungsmodus ab. (Überschreibt PipeStream.TransmissionMode.) |
|
WriteTimeout | Ruft einen Wert in Millisekunden ab, der bestimmt, wie lange der Stream versucht, Schreibvorgänge durchzuführen, bevor ein Timeout auftritt, oder legt diesen fest. (Von Stream geerbt.) |
| Name | Beschreibung | |
|---|---|---|
|
BeginRead | Beginnt einen asynchronen Lesevorgang. (Von PipeStream geerbt.) |
|
BeginWrite | Beginnt einen asynchronen Schreibvorgang. (Von PipeStream geerbt.) |
|
CheckPipePropertyOperations | Infrastruktur. Überprüft, ob sich die Pipe in einem ordnungsgemäßen Zustand zum Abrufen oder Festlegen von Eigenschaften befindet. (Von PipeStream geerbt.) |
|
CheckReadOperations | Infrastruktur. Überprüft, ob die Pipe verbunden ist, um Lesevorgänge auszuführen. (Von PipeStream geerbt.) |
|
CheckWriteOperations | Infrastruktur. Überprüft, ob die Pipe verbunden ist, um Schreibvorgänge auszuführen. (Von PipeStream geerbt.) |
|
Close | Schließt den aktuellen Stream und gibt alle dem aktuellen Stream zugeordneten Ressourcen frei (z. B. Sockets und Dateihandles). (Von Stream geerbt.) |
|
CopyTo(Stream) | Liest alle Bytes aus dem aktuellen Datenstrom und schreibt sie in den Zieldatenstrom. (Von Stream geerbt.) |
|
CopyTo(Stream, Int32) | Liest alles Bytes aus dem aktuellen Datenstrom und schreibt sie unter Verwendung einer angegebenen Puffergröße in einen Zieldatenstrom. (Von Stream geerbt.) |
|
CreateObjRef | Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind. (Von MarshalByRefObject geerbt.) |
|
CreateWaitHandle | Veraltet. Reserviert ein WaitHandle-Objekt. (Von Stream geerbt.) |
|
Dispose() | Gibt sämtliche vom Stream verwendeten Ressourcen frei. (Von Stream geerbt.) |
|
Dispose(Boolean) | Gibt die von der PipeStream-Klasse verwendeten nicht verwalteten Ressourcen und optional auch die verwalteten Ressourcen frei. (Von PipeStream geerbt.) |
|
DisposeLocalCopyOfClientHandle | Schließt die lokale Kopie des Handles für das AnonymousPipeClientStream-Objekt. |
|
EndRead | Beendet eine ausstehende asynchrone Leseanforderung. (Von PipeStream geerbt.) |
|
EndWrite | Beendet eine ausstehende asynchrone Schreibanforderung. (Von PipeStream geerbt.) |
|
Equals(Object) | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
Flush | Löscht den Puffer für den aktuellen Stream und veranlasst die Ausgabe aller gepufferten Daten an das zugrunde liegende Gerät. (Von PipeStream geerbt.) |
|
GetAccessControl | Ruft ein PipeSecurity-Objekt ab, das die Einträge in der Zugriffssteuerungsliste für die Pipe kapselt, die vom aktuellen PipeStream-Objekt beschrieben wird. (Von PipeStream geerbt.) |
|
GetClientHandleAsString | Ruft das Handle des verbundenen AnonymousPipeClientStream-Objekts als Zeichenfolge ab. |
|
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) |
|
GetLifetimeService | Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert. (Von MarshalByRefObject geerbt.) |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
InitializeHandle | Initialisiert ein PipeStream-Objekt aus dem angegebenen SafePipeHandle-Objekt. (Von PipeStream geerbt.) |
|
InitializeLifetimeService | Ruft ein Lebensdauerdienstobjekt ab, mit dem die Lebensdauerrichtlinien für diese Instanz gesteuert werden können. (Von MarshalByRefObject geerbt.) |
|
MemberwiseClone() | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
MemberwiseClone(Boolean) | Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts. (Von MarshalByRefObject geerbt.) |
|
ObjectInvariant | Infrastruktur. Bietet Unterstützung für das Contract. (Von Stream geerbt.) |
|
Read | Liest einen Byteblock aus einem Stream und schreibt die Daten in einen angegebenen Puffer. (Von PipeStream geerbt.) |
|
ReadByte | Liest ein Byte aus einer Pipe. (Von PipeStream geerbt.) |
|
Seek | Legt die aktuelle Position des aktuellen Streams auf den angegebenen Wert fest. (Von PipeStream geerbt.) |
|
SetAccessControl | Wendet von einem PipeSecurity-Objekt angegebene Einträge in Zugriffssteuerungslisten auf die vom aktuellen PipeStream-Objekt angegebene Pipe an. (Von PipeStream geerbt.) |
|
SetLength | Legt die Länge des aktuellen Streams auf den angegebenen Wert fest. (Von PipeStream geerbt.) |
|
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
|
WaitForPipeDrain | Wartet, bis das andere Ende der Pipe alle gesendeten Bytes gelesen hat. (Von PipeStream geerbt.) |
|
Write | Schreibt einen Byteblock mit den Daten aus einem Puffer in den aktuellen Stream. (Von PipeStream geerbt.) |
|
WriteByte | Schreibt ein Byte in den aktuellen Stream. (Von PipeStream geerbt.) |
Anonyme Pipes tragen zur sicheren prozessübergreifenden Kommunikation zwischen untergeordneten und übergeordneten Prozessen bei. Die AnonymousPipeServerStream-Klasse ermöglicht es einem übergeordneten Prozess, Informationen an einen untergeordneten Prozess zu senden oder von diesem zu empfangen.
Anonyme Pipes sind unbenannte, unidirektionale Pipes, die i. d. R. Daten zwischen übergeordneten und untergeordneten Prozessen übertragen. Anonyme Pipes sind immer lokal. Sie können nicht in einem Netzwerk verwendet werden. Der PipeDirection-Wert InOut wird nicht unterstützt, da anonyme Pipes als unidirektionale Pipes definiert sind.
Anonyme Pipes unterstützen keine Message-Lesemodi.
Die Clientseite einer anonymen Pipe muss über ein Pipehandle erstellt werden, das von der Serverseite durch Aufruf der GetClientHandleAsString-Methode bereitgestellt wird. Die Zeichenfolge wird dann beim Erstellen des Clientprozesses als Parameter übergeben. Anschließend wird sie vom Clientprozess als pipeHandleAsString-Parameter an den AnonymousPipeClientStream-Konstruktor übergeben.
Das AnonymousPipeServerStream-Objekt muss das Clienthandle mit der DisposeLocalCopyOfClientHandle-Methode verfügbar machen, um benachrichtigt zu werden, wenn der Client beendet wird.
Hinweis
|
|---|
|
Für Windows XP Professional und Windows 2000 Server kann ein Maximum von 10 Pipes über das Netzwerk gleichzeitig eine Verbindung herstellen. |
Hinweis
|
|---|
|
Das auf diesen Typ oder Member angewendete HostProtectionAttribute-Attribut besitzt den folgenden Resources-Eigenschaftswert: MayLeakOnAbort. Das HostProtectionAttribute hat keine Auswirkungen auf Desktopanwendungen (die normalerweise durch Doppelklicken auf ein Symbol, Eingeben eines Befehls oder einer URL in einem Browser gestartet werden). Weitere Informationen finden Sie unter der HostProtectionAttribute-Klasse oder unter SQL Server-Programmierung und Hostschutzattribute. |
Das folgende Beispiel zeigt, wie eine Zeichenfolge mithilfe von anonymen Pipes von einem übergeordneten Prozess an einen untergeordneten Prozess gesendet werden kann. In diesem Beispiel wird ein AnonymousPipeServerStream-Objekt in einem übergeordneten Prozess mit dem PipeDirection-Wert Out erstellt. Es wird auch ein AnonymousPipeClientStream-Objekt in einem untergeordneten Prozess mit dem PipeDirection-Wert In erstellt. Der übergeordnete Prozess sendet daraufhin eine vom Benutzer bereitgestellte Zeichenfolge an den untergeordneten Prozess. Die Zeichenfolge wird in der Konsole angezeigt.
Dies ist ein Beispiel für den Serverprozess, der die AnonymousPipeServerStream-Klasse verwendet. Das gesamte Codebeispiel, einschließlich des Codes für Pipeclient und -server, finden Sie unter Gewusst wie: Verwenden von anonymen Pipes zur Kommunikation zwischen lokalen Prozessen.
using System; using System.IO; using System.IO.Pipes; using System.Diagnostics; class PipeServer { static void Main() { Process pipeClient = new Process(); pipeClient.StartInfo.FileName = "pipeClient.exe"; using (AnonymousPipeServerStream pipeServer = new AnonymousPipeServerStream(PipeDirection.Out, HandleInheritability.Inheritable)) { // Show that anonymous pipes do not support Message mode. try { Console.WriteLine("[SERVER] Setting ReadMode to \"Message\"."); pipeServer.ReadMode = PipeTransmissionMode.Message; } catch (NotSupportedException e) { Console.WriteLine("[SERVER] Exception:\n {0}", e.Message); } Console.WriteLine("[SERVER] Current TransmissionMode: {0}.", pipeServer.TransmissionMode); // Pass the client process a handle to the server. pipeClient.StartInfo.Arguments = pipeServer.GetClientHandleAsString(); pipeClient.StartInfo.UseShellExecute = false; pipeClient.Start(); pipeServer.DisposeLocalCopyOfClientHandle(); try { // Read user input and send that to the client process. using (StreamWriter sw = new StreamWriter(pipeServer)) { sw.AutoFlush = true; // Send a 'sync message' and wait for client to receive it. sw.WriteLine("SYNC"); pipeServer.WaitForPipeDrain(); // Send the console input to the client process. Console.Write("[SERVER] Enter text: "); sw.WriteLine(Console.ReadLine()); } } // Catch the IOException that is raised if the pipe is broken // or disconnected. catch (IOException e) { Console.WriteLine("[SERVER] Error: {0}", e.Message); } } pipeClient.WaitForExit(); pipeClient.Close(); Console.WriteLine("[SERVER] Client quit. Server terminating."); } }
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Hinweis