NamedPipeServerStream 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 en Stream runt ett namngivet rör som stöder både synkrona och asynkrona läs- och skrivåtgärder.
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
- Arv
- 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 med 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 är för serverprocessen, som använder NamedPipeServerStream -klassen. 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 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
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.
När det gäller trådsäkerhet för läsning och skrivning kan upp till en enskild läsare och en enskild skrivare använda en instans samtidigt.
Konstruktorer
| Name | Description |
|---|---|
| NamedPipeServerStream(PipeDirection, Boolean, Boolean, SafePipeHandle) |
Initierar en ny instans av NamedPipeServerStream klassen från det angivna rörhandtaget. |
| NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32, PipeSecurity, HandleInheritability, PipeAccessRights) |
Initierar en ny instans av NamedPipeServerStream klassen med angivet rörnamn, rörriktning, maximalt antal serverinstanser, överföringsläge, röralternativ, rekommenderade in- och utbuningsstorlekar, rörsäkerhet, ärverbarhetsläge och åtkomsträttigheter för rör. |
| NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32, PipeSecurity, HandleInheritability) |
Initierar en ny instans av NamedPipeServerStream klassen med angivet rörnamn, rörriktning, maximalt antal serverinstanser, överföringsläge, röralternativ, rekommenderade in- och utbuffertstorlekar, rörsäkerhet och ärverbarhetsläge. |
| NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32, PipeSecurity) |
Initierar en ny instans av NamedPipeServerStream klassen med angivet rörnamn, rörriktning, maximalt antal serverinstanser, överföringsläge, röralternativ, rekommenderade in- och utbuffertstorlekar samt rörsäkerhet. |
| NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32) |
Initierar en ny instans av NamedPipeServerStream klassen med angivet rörnamn, rörriktning, maximalt antal serverinstanser, överföringsläge, röralternativ och rekommenderade in- och utbuffertstorlekar. |
| NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions) |
Initierar en ny instans av NamedPipeServerStream klassen med angivet rörnamn, rörriktning, maximalt antal serverinstanser, överföringsläge och pipe-alternativ. |
| NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode) |
Initierar en ny instans av NamedPipeServerStream klassen med angivet rörnamn, rörriktning, maximalt antal serverinstanser och överföringsläge. |
| NamedPipeServerStream(String, PipeDirection, Int32) |
Initierar en ny instans av NamedPipeServerStream klassen med angivet rörnamn, rörriktning och maximalt antal serverinstanser. |
| NamedPipeServerStream(String, PipeDirection) |
Initierar en ny instans av NamedPipeServerStream klassen med angivet rörnamn och rörriktning. |
| NamedPipeServerStream(String) |
Initierar en ny instans av NamedPipeServerStream klassen med det angivna pipenamnet. |
Fält
| Name | Description |
|---|---|
| MaxAllowedServerInstances |
Representerar det maximala antalet serverinstanser som systemresurserna tillåter. |
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 |
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) |
| BeginWaitForConnection(AsyncCallback, Object) |
Påbörjar en asynkron åtgärd för att vänta tills en klient ansluter. |
| 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.
Föråldrad.
Föråldrad.
Allokerar ett WaitHandle objekt. (Ärvd från Stream) |
| Disconnect() |
Kopplar från den aktuella anslutningen. |
| 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) |
| EndWaitForConnection(IAsyncResult) |
Avslutar en asynkron åtgärd för att vänta tills en klient ansluter. |
| 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 NamedPipeServerStream 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 bufferten för den aktuella strömmen och gör att buffrade data skrivs till den underliggande enheten. (Ärvd från PipeStream) |
| 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) |
| GetImpersonationUserName() |
Hämtar användarnamnet för klienten i den andra änden av röret. |
| GetLifetimeService() |
Föråldrad.
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() |
Föråldrad.
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) |
| ReadAtLeast(Span<Byte>, Int32, Boolean) |
Läser minst ett minsta antal byte från den aktuella strömmen och avancerar positionen i dataströmmen med antalet lästa byte. (Ärvd från Stream) |
| ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Läser asynkront minst ett minsta antal byte från den aktuella strömmen, avancerar positionen i strömmen med antalet lästa byte och övervakar begäranden om annullering. (Ärvd från Stream) |
| ReadByte() |
Läser en byte från ett rör. (Ärvd från PipeStream) |
| ReadExactly(Byte[], Int32, Int32) |
|
| ReadExactly(Span<Byte>) |
Läser byte från den aktuella strömmen och flyttar positionen i dataströmmen tills den |
| ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Läser |
| ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Läser asynkront byte från den aktuella strömmen, flyttar positionen i strömmen tills den |
| RunAsClient(PipeStreamImpersonationWorker) |
Anropar ett ombud när klienten personifieras. |
| 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) |
| WaitForConnection() |
Väntar på att en klient ska ansluta till det här NamedPipeServerStream objektet. |
| WaitForConnectionAsync() |
Väntar asynkront på att en klient ska ansluta till det här NamedPipeServerStream objektet. |
| WaitForConnectionAsync(CancellationToken) |
Väntar asynkront på att en klient ska ansluta till det här NamedPipeServerStream objektet och övervakar begäranden om annullering. |
| 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. |
| CopyToAsync(Stream, PipeWriter, CancellationToken) |
Läser asynkront byteen från Stream och skriver dem till den angivna PipeWriter, med hjälp av en annulleringstoken. |
| GetAccessControl(PipeStream) |
Returnerar säkerhetsinformationen för en rörström. |
| SetAccessControl(PipeStream, PipeSecurity) |
Ändrar säkerhetsattributen för en befintlig rörström. |