NamedPipeClientStream Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Exponerar ett Stream runt ett namngivet rör som stöder både synkrona och asynkrona läs- och skrivåtgärder.
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
- Arv
Exempel
I följande exempel visas ett sätt att skicka en sträng från en överordnad process till en underordnad process på samma dator med hjälp av namngivna pipes. Det här exemplet skapar ett NamedPipeServerStream objekt i en överordnad process. Objektet NamedPipeServerStream har värdet PipeDirectionOut. Servern väntar sedan på att ett NamedPipeClientStream objekt i en underordnad process ska ansluta till det. I det här exemplet finns båda processerna på samma dator och objektet NamedPipeClientStream har 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 ansluter till serverprocessen. Hela kodexemplet, inklusive koden för både pipe-klienten och servern, finns i Så här använder du namngivna pipes för kommunikation mellan nätverk.
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
Kommentarer
Namngivna rör tillhandahåller enkelriktade eller duplex-rör för kommunikation mellan en rörserver och en eller flera pipe-klienter. Namngivna rör kan användas för kommunikation mellan processer lokalt eller via ett nätverk. Ett enda pipe-namn kan delas av flera NamedPipeClientStream objekt.
Alla processer kan fungera som antingen en namngiven pipe-server eller klient, eller både och.
Konstruktorer
| Name | Description |
|---|---|
| NamedPipeClientStream(PipeDirection, Boolean, Boolean, SafePipeHandle) |
Initierar en ny instans av NamedPipeClientStream klassen för det angivna rörhandtaget med angiven rörriktning. |
| NamedPipeClientStream(String, String, PipeAccessRights, PipeOptions, TokenImpersonationLevel, HandleInheritability) |
Initierar en ny instans av NamedPipeClientStream klassen med de angivna pipe- och servernamnen och de angivna pipe-alternativen, säkerhets personifieringsnivån och ärvbarhetsläget. |
| NamedPipeClientStream(String, String, PipeDirection, PipeOptions, TokenImpersonationLevel, HandleInheritability) |
Initierar en ny instans av NamedPipeClientStream klassen med angivna pipe- och servernamn och angiven rörriktning, pipe-alternativ, säkerhets personifieringsnivå och ärverbarhetsläge. |
| NamedPipeClientStream(String, String, PipeDirection, PipeOptions, TokenImpersonationLevel) |
Initierar en ny instans av NamedPipeClientStream klassen med angivna pipe- och servernamn samt angiven rörriktning, pipe-alternativ och säkerhetspersonifieringsnivå. |
| NamedPipeClientStream(String, String, PipeDirection, PipeOptions) |
Initierar en ny instans av NamedPipeClientStream klassen med de angivna pipe- och servernamnen och de angivna rörriktnings- och röralternativen. |
| NamedPipeClientStream(String, String, PipeDirection) |
Initierar en ny instans av NamedPipeClientStream klassen med de angivna pipe- och servernamnen och den angivna rörriktningen. |
| NamedPipeClientStream(String, String) |
Initierar en ny instans av NamedPipeClientStream klassen med angivna pipe- och servernamn. |
| NamedPipeClientStream(String) |
Initierar en ny instans av NamedPipeClientStream klassen med det angivna pipenamnet. |
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) |
| NumberOfServerInstances |
Hämtar antalet serverinstanser som delar samma pipe-namn. |
| 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 |
Hämtar eller anger läsläget för ett PipeStream objekt. (Ärvd från PipeStream) |
| 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. (Ärvd från PipeStream) |
| 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) |
| Connect() |
Ansluter till en väntande server med ett oändligt timeout-värde. |
| Connect(Int32) |
Ansluter till en väntande server inom den angivna tidsgränsen. |
| ConnectAsync() |
Ansluter asynkront till en väntande server med en oändlig tidsgräns. |
| ConnectAsync(CancellationToken) |
Ansluter asynkront till en väntande server och övervakar begäranden om annullering. |
| ConnectAsync(Int32, CancellationToken) |
Ansluter asynkront till en väntande server inom den angivna tidsgränsen och övervakar begäranden om annullering. |
| ConnectAsync(Int32) |
Ansluter asynkront till en väntande server inom den angivna tidsgränsen. |
| 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 NamedPipeClientStream 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. |