AnonymousPipeClientStream Klass

Definition

Exponerar klientsidan av en anonym rörström, som stöder både synkrona och asynkrona läs- och skrivåtgärder (utan stöd för annullering på Windows plattformar).

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
Arv
AnonymousPipeClientStream

Exempel

I följande exempel skickas en sträng från en överordnad process till en underordnad process med hjälp av anonyma pipes. Det här exemplet skapar ett AnonymousPipeServerStream objekt i en överordnad process med värdet PipeDirectionOut. Det skapar också ett AnonymousPipeClientStream objekt i en underordnad process med värdet PipeDirectionIn. Den överordnade processen skickar sedan en användarangiven sträng till den underordnade processen. Strängen visas i konsolen.

Det här exemplet gäller klientprocessen som startas av serverprocessen. Namnge den resulterande körbara filen från klientkoden pipeClient.exe och kopiera den till samma katalog som den körbara servern när du kör det här exemplet. Hela kodexemplet, inklusive koden för både pipe-klienten och servern, finns i How to: Use Anonymous Pipes for Local Interprocess Communication (Så här använder du anonyma pipes för lokal interprocesskommunikation).

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

Kommentarer

Anonyma rör hjälper till att tillhandahålla säker kommunikation mellan underordnade och överordnade processer. Klassen AnonymousPipeClientStream gör det möjligt för en underordnad process att ansluta till och utbyta information med en överordnad process.

Anonyma rör är namnlösa, enkelriktade rör som vanligtvis överför data mellan överordnade och underordnade processer. Anonyma rör är alltid lokala; De kan inte användas via ett nätverk. Ett PipeDirection värde för InOut stöds inte eftersom anonyma rör definieras som enkelriktade.

Anonyma rör stöder PipeTransmissionMode.Message inte läsläge.

Klientsidan för ett anonymt rör måste skapas från ett rörhandtag som tillhandahålls av serversidan genom att anropa GetClientHandleAsString metoden. Strängen skickas sedan som en parameter när klientprocessen skapas. Från klientprocessen skickas den AnonymousPipeClientStream till konstruktorn som pipeHandleAsString parameter.

På Windows stöds inte asynkrona (överlappande) läs- och skrivåtgärder av anonyma pipes (se Anonymous pipe operations). Klassen AnonymousPipeClientStream schemalägger fortfarande arbete på trådpoolen på Windows plattformar så att asynkrona Stream åtgärder fungerar, men det går inte att avbryta dessa åtgärder.

Konstruktorer

Name Description
AnonymousPipeClientStream(PipeDirection, SafePipeHandle)

Initierar en ny instans av AnonymousPipeClientStream klassen från det angivna handtaget.

AnonymousPipeClientStream(PipeDirection, String)

Initierar en ny instans av AnonymousPipeClientStream klassen med angiven rörriktning och en strängrepresentation av rörhandtaget.

AnonymousPipeClientStream(String)

Initierar en ny instans av AnonymousPipeClientStream klassen med den angivna strängrepresentationen av rörhandtaget.

Egenskaper

Name Description
CanRead

Hämtar ett värde som anger om den aktuella strömmen stöder läsåtgärder.

(Ärvd från PipeStream)
CanSeek

Hämtar ett värde som anger om den aktuella strömmen stöder sökåtgärder.

(Ärvd från PipeStream)
CanTimeout

Hämtar ett värde som avgör om den aktuella strömmen kan överskrida tidsgränsen.

(Ärvd från Stream)
CanWrite

Hämtar ett värde som anger om den aktuella strömmen stöder skrivåtgärder.

(Ärvd från PipeStream)
InBufferSize

Hämtar storleken, i byte, på den inkommande bufferten för ett rör.

(Ärvd från PipeStream)
IsAsync

Hämtar ett värde som anger om ett PipeStream objekt öppnades asynkront eller synkront.

(Ärvd från PipeStream)
IsConnected

Hämtar eller anger ett värde som anger om ett PipeStream objekt är anslutet.

(Ärvd från PipeStream)
IsHandleExposed

Hämtar ett värde som anger om ett handtag för ett PipeStream objekt exponeras.

(Ärvd från PipeStream)
IsMessageComplete

Hämtar ett värde som anger om det finns mer data i meddelandet som returneras från den senaste läsåtgärden.

(Ärvd från PipeStream)
Length

Hämtar längden på en ström, i byte.

(Ärvd från PipeStream)
OutBufferSize

Hämtar storleken, i byte, på den utgående bufferten för ett rör.

(Ärvd från PipeStream)
Position

Hämtar eller anger aktuell position för den aktuella strömmen.

(Ärvd från PipeStream)
ReadMode

Anger läsläge för AnonymousPipeClientStream objektet.

ReadTimeout

Hämtar eller anger ett värde i millisekunder som avgör hur länge strömmen ska försöka läsa innan tidsgränsen nås.

(Ärvd från Stream)
SafePipeHandle

Hämtar det säkra handtaget för den lokala änden av röret som det aktuella PipeStream objektet kapslar in.

(Ärvd från PipeStream)
TransmissionMode

Hämtar det röröverföringsläge som stöds av det aktuella röret.

WriteTimeout

Hämtar eller anger ett värde i millisekunder som avgör hur länge strömmen ska försöka skriva innan tidsgränsen nås.

(Ärvd från Stream)

Metoder

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

Påbörjar en asynkron läsåtgärd.

(Ärvd från PipeStream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Påbörjar en asynkron skrivåtgärd.

(Ärvd från PipeStream)
CheckPipePropertyOperations()

Verifierar att röret är i rätt tillstånd för att hämta eller ange egenskaper.

(Ärvd från PipeStream)
CheckReadOperations()

Verifierar att röret är i ett anslutet tillstånd för läsåtgärder.

(Ärvd från PipeStream)
CheckWriteOperations()

Verifierar att röret är i ett anslutet tillstånd för skrivåtgärder.

(Ärvd från PipeStream)
Close()

Stänger den aktuella strömmen och släpper alla resurser (till exempel socketar och filhandtag) som är associerade med den aktuella strömmen. I stället för att anropa den här metoden kontrollerar du att dataströmmen tas bort korrekt.

(Ärvd från Stream)
CopyTo(Stream, Int32)

Läser byteen från den aktuella strömmen och skriver dem till en annan ström med en angiven buffertstorlek. Båda strömmarnas positioner avanceras av antalet kopierade byte.

(Ärvd från Stream)
CopyTo(Stream)

Läser byteen från den aktuella strömmen och skriver dem till en annan ström. Båda strömmarnas positioner avanceras av antalet kopierade byte.

(Ärvd från Stream)
CopyToAsync(Stream, CancellationToken)

Läser asynkront byte från den aktuella strömmen och skriver dem till en annan ström med hjälp av en angiven annulleringstoken. Båda strömmarnas positioner avanceras av antalet kopierade byte.

(Ärvd från Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Läser asynkront byte från den aktuella strömmen och skriver dem till en annan dataström med en angiven buffertstorlek och annulleringstoken. Båda strömmarnas positioner avanceras av antalet kopierade byte.

(Ärvd från Stream)
CopyToAsync(Stream, Int32)

Läser asynkront byte från den aktuella strömmen och skriver dem till en annan ström med en angiven buffertstorlek. Båda strömmarnas positioner avanceras av antalet kopierade byte.

(Ärvd från Stream)
CopyToAsync(Stream)

Läser asynkront byte från den aktuella strömmen och skriver dem till en annan ström. Båda strömmarnas positioner avanceras av antalet kopierade byte.

(Ärvd från Stream)
CreateObjRef(Type)

Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt.

(Ärvd från MarshalByRefObject)
CreateWaitHandle()
Föråldrad.

Allokerar ett WaitHandle objekt.

(Ärvd från Stream)
Dispose()

Släpper alla resurser som används av Stream.

(Ärvd från Stream)
Dispose(Boolean)

Släpper de ohanterade resurser som används av PipeStream klassen och släpper eventuellt de hanterade resurserna.

(Ärvd från PipeStream)
DisposeAsync()

Asynkront släpper de ohanterade resurser som används av Stream.

(Ärvd från Stream)
EndRead(IAsyncResult)

Avslutar en väntande asynkron läsbegäran.

(Ärvd från PipeStream)
EndWrite(IAsyncResult)

Avslutar en väntande asynkron skrivbegäran.

(Ärvd från PipeStream)
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
Finalize()

Frigör ohanterade resurser och utför andra rensningsåtgärder innan instansen AnonymousPipeClientStream frigörs av skräpinsamling.

Flush()

Rensar bufferten för den aktuella strömmen och gör att buffrade data skrivs till den underliggande enheten.

(Ärvd från PipeStream)
FlushAsync()

Rensar asynkront alla buffertar för den här strömmen och gör att buffrade data skrivs till den underliggande enheten.

(Ärvd från Stream)
FlushAsync(CancellationToken)

Rensar asynkront alla buffertar för den här strömmen, gör att buffrade data skrivs till den underliggande enheten och övervakar begäranden om annullering.

(Ärvd från Stream)
GetAccessControl()

Hämtar ett PipeSecurity objekt som kapslar in ACL-posterna (åtkomstkontrollistan) för röret som beskrivs av det aktuella PipeStream objektet.

(Ärvd från PipeStream)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetLifetimeService()

Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen.

(Ärvd från MarshalByRefObject)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
InitializeHandle(SafePipeHandle, Boolean, Boolean)

Initierar ett PipeStream objekt från det angivna SafePipeHandle objektet.

(Ärvd från PipeStream)
InitializeLifetimeService()

Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen.

(Ärvd från MarshalByRefObject)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
MemberwiseClone(Boolean)

Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet.

(Ärvd från MarshalByRefObject)
ObjectInvariant()
Föråldrad.

Tillhandahåller stöd för en Contract.

(Ärvd från Stream)
Read(Byte[], Int32, Int32)

Läser ett block med byte från en dataström och skriver data till en angiven buffert som börjar på en angiven position för en angiven längd.

(Ärvd från PipeStream)
Read(Span<Byte>)

Läser en sekvens med byte från den aktuella strömmen, skriver dem till en bytematris och avancerar positionen i dataströmmen med antalet lästa byte.

(Ärvd från PipeStream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Läser asynkront en sekvens med byte från den aktuella strömmen till en bytematris som börjar vid en angiven position för ett angivet antal byte, avancerar positionen i strömmen med antalet lästa byte och övervakar begäranden om annullering.

(Ärvd från PipeStream)
ReadAsync(Byte[], Int32, Int32)

Läser asynkront en sekvens med byte från den aktuella strömmen och avancerar positionen i strömmen med antalet lästa byte.

(Ärvd från Stream)
ReadAsync(Memory<Byte>, CancellationToken)

Läser asynkront en sekvens med byte från den aktuella strömmen, skriver dem till ett byteminnesintervall, avancerar positionen i strömmen med antalet lästa byte och övervakar begäranden om annullering.

(Ärvd från PipeStream)
ReadByte()

Läser en byte från ett rör.

(Ärvd från PipeStream)
Seek(Int64, SeekOrigin)

Anger aktuell position för den aktuella strömmen till det angivna värdet.

(Ärvd från PipeStream)
SetAccessControl(PipeSecurity)

Tillämpar de poster i åtkomstkontrollistan (ACL) som anges av ett PipeSecurity objekt på den pipe som anges av det aktuella PipeStream objektet.

(Ärvd från PipeStream)
SetLength(Int64)

Anger längden på den aktuella strömmen till det angivna värdet.

(Ärvd från PipeStream)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
WaitForPipeDrain()

Väntar på att den andra änden av röret ska läsa alla skickade byte.

(Ärvd från PipeStream)
Write(Byte[], Int32, Int32)

Skriver ett byteblock till den aktuella strömmen med data från en buffert.

(Ärvd från PipeStream)
Write(ReadOnlySpan<Byte>)

Skriver en sekvens med byte till den aktuella strömmen och avancerar den aktuella positionen i den här strömmen med antalet skrivna byte.

(Ärvd från PipeStream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Skriver asynkront ett angivet antal byte från en bytematris som börjar på en angiven position, avancerar den aktuella positionen i den här strömmen med antalet skrivna byte och övervakar begäranden om annullering.

(Ärvd från PipeStream)
WriteAsync(Byte[], Int32, Int32)

Skriver asynkront en sekvens med byte till den aktuella strömmen och avancerar den aktuella positionen i den här strömmen med antalet skrivna byte.

(Ärvd från Stream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Skriver asynkront en sekvens med byte till den aktuella strömmen, avancerar den aktuella positionen i den här strömmen med antalet skrivna byte och övervakar begäranden om annullering.

(Ärvd från PipeStream)
WriteByte(Byte)

Skriver en byte till den aktuella strömmen.

(Ärvd från PipeStream)

Tilläggsmetoder

Name Description
ConfigureAwait(IAsyncDisposable, Boolean)

Konfigurerar hur väntar på de uppgifter som returneras från en asynkron disponibel ska utföras.

Gäller för