AnonymousPipeClientStream Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Maakt de clientzijde van een anonieme pijpstroom beschikbaar, die zowel synchrone als asynchrone lees- en schrijfbewerkingen ondersteunt (zonder annuleringsondersteuning op Windows platforms).
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
- Overname
Voorbeelden
In het volgende voorbeeld wordt een tekenreeks van een bovenliggend proces naar een onderliggend proces verzonden met behulp van anonieme pijpen. In dit voorbeeld wordt een AnonymousPipeServerStream object gemaakt in een bovenliggend proces met een PipeDirection waarde van Out. Er wordt ook een AnonymousPipeClientStream object gemaakt in een onderliggend proces met een PipeDirection waarde van In. Het bovenliggende proces verzendt vervolgens een door de gebruiker opgegeven tekenreeks naar het onderliggende proces. De tekenreeks wordt weergegeven in de console.
Dit voorbeeld is voor het clientproces, dat wordt gestart door het serverproces. Geef het resulterende uitvoerbare bestand de naam van de clientcode pipeClient.exe en kopieer deze naar dezelfde map als het uitvoerbare bestand van de server wanneer u dit voorbeeld uitvoert. Voor het volledige codevoorbeeld, inclusief de code voor zowel de pipe-client als de server, raadpleegt u How to: Use Anonymous Pipes for Local Interprocess Communication.
//<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>
Opmerkingen
Anonieme pijpen helpen veilige en veilige communicatie tussen processen tussen onderliggende en bovenliggende processen te bieden. Met de AnonymousPipeClientStream klasse kan een onderliggend proces verbinding maken met en informatie uitwisselen met een bovenliggend proces.
Anonieme pijpen zijn niet-benoemde, eenrichtingspijpen die doorgaans gegevens overdragen tussen bovenliggende en onderliggende processen. Anonieme pijpen zijn altijd lokaal; ze kunnen niet via een netwerk worden gebruikt. Een PipeDirection waarde van InOut wordt niet ondersteund omdat anonieme pijpen in één richting zijn gedefinieerd.
Anonieme pijpen bieden geen ondersteuning voor de PipeTransmissionMode.Message leesmodus.
De clientzijde van een anonieme pijp moet worden gemaakt op basis van een pijpgreep die door de server wordt geleverd door de methode aan te GetClientHandleAsString roepen. De tekenreeks wordt vervolgens doorgegeven als een parameter bij het maken van het clientproces. Vanuit het clientproces wordt het als parameter pipeHandleAsString doorgegeven aan de AnonymousPipeClientStream constructor.
In Windows worden asynchrone (overlappende) lees- en schrijfbewerkingen niet ondersteund door anonieme pijpen (zie Anonieme pijpbewerkingen). De AnonymousPipeClientStream-klasse plant nog steeds werk in de threadgroep op Windows platforms, zodat asynchrone Stream bewerkingen werken, maar het annuleren van deze bewerkingen wordt niet ondersteund.
Constructors
| Name | Description |
|---|---|
| AnonymousPipeClientStream(PipeDirection, SafePipeHandle) |
Initialiseert een nieuw exemplaar van de AnonymousPipeClientStream klasse vanuit de opgegeven ingang. |
| AnonymousPipeClientStream(PipeDirection, String) |
Initialiseert een nieuw exemplaar van de AnonymousPipeClientStream klasse met de opgegeven pijprichting en een tekenreeksweergave van de pijpgreep. |
| AnonymousPipeClientStream(String) |
Initialiseert een nieuw exemplaar van de AnonymousPipeClientStream klasse met de opgegeven tekenreeksweergave van de pijpgreep. |
Eigenschappen
| Name | Description |
|---|---|
| CanRead |
Hiermee wordt een waarde opgehaald die aangeeft of de huidige stroom leesbewerkingen ondersteunt. (Overgenomen van PipeStream) |
| CanSeek |
Hiermee wordt een waarde opgehaald die aangeeft of de huidige stroom zoekbewerkingen ondersteunt. (Overgenomen van PipeStream) |
| CanTimeout |
Hiermee wordt een waarde opgehaald die bepaalt of er een time-out optreedt voor de huidige stroom. (Overgenomen van Stream) |
| CanWrite |
Hiermee wordt een waarde opgehaald die aangeeft of de huidige stroom schrijfbewerkingen ondersteunt. (Overgenomen van PipeStream) |
| InBufferSize |
Hiermee haalt u de grootte, in bytes, van de binnenkomende buffer voor een pijp op. (Overgenomen van PipeStream) |
| IsAsync |
Hiermee wordt een waarde opgehaald die aangeeft of een PipeStream object asynchroon of synchroon is geopend. (Overgenomen van PipeStream) |
| IsConnected |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of een PipeStream object is verbonden. (Overgenomen van PipeStream) |
| IsHandleExposed |
Hiermee wordt een waarde opgehaald die aangeeft of een ingang voor een PipeStream object wordt weergegeven. (Overgenomen van PipeStream) |
| IsMessageComplete |
Hiermee wordt een waarde opgehaald die aangeeft of er meer gegevens in het bericht zijn geretourneerd door de meest recente leesbewerking. (Overgenomen van PipeStream) |
| Length |
Hiermee haalt u de lengte van een stream op, in bytes. (Overgenomen van PipeStream) |
| OutBufferSize |
Hiermee haalt u de grootte, in bytes, van de uitgaande buffer voor een pijp op. (Overgenomen van PipeStream) |
| Position |
Hiermee haalt u de huidige positie van de huidige stroom op of stelt u deze in. (Overgenomen van PipeStream) |
| ReadMode |
Hiermee stelt u de leesmodus voor het AnonymousPipeClientStream object in. |
| ReadTimeout |
Hiermee wordt een waarde opgehaald of ingesteld, in milliseconden, die bepaalt hoe lang de stroom probeert te lezen voordat er een time-out optreedt. (Overgenomen van Stream) |
| SafePipeHandle |
Hiermee haalt u de veilige ingang op voor het lokale uiteinde van de pijp die door het huidige PipeStream object wordt ingekapseld. (Overgenomen van PipeStream) |
| TransmissionMode |
Hiermee haalt u de transmissiemodus van de pijp op die wordt ondersteund door de huidige pijp. |
| WriteTimeout |
Hiermee wordt een waarde opgehaald of ingesteld, in milliseconden, die bepaalt hoe lang de stream probeert te schrijven voordat er een time-out optreedt. (Overgenomen van Stream) |
Methoden
| Name | Description |
|---|---|
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Begint een asynchrone leesbewerking. (Overgenomen van PipeStream) |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Hiermee wordt een asynchrone schrijfbewerking gestart. (Overgenomen van PipeStream) |
| CheckPipePropertyOperations() |
Controleert of de pijp de juiste status heeft voor het ophalen of instellen van eigenschappen. (Overgenomen van PipeStream) |
| CheckReadOperations() |
Controleert of de pijp een verbonden status heeft voor leesbewerkingen. (Overgenomen van PipeStream) |
| CheckWriteOperations() |
Controleert of de pijp een verbonden status heeft voor schrijfbewerkingen. (Overgenomen van PipeStream) |
| Close() |
Hiermee sluit u de huidige stroom en worden alle resources (zoals sockets en bestandsingangen) die aan de huidige stroom zijn gekoppeld, vrijgegeven. In plaats van deze methode aan te roepen, moet u ervoor zorgen dat de stream correct wordt verwijderd. (Overgenomen van Stream) |
| CopyTo(Stream, Int32) |
Leest de bytes uit de huidige stream en schrijft ze naar een andere stroom, met behulp van een opgegeven buffergrootte. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyTo(Stream) |
Leest de bytes uit de huidige stream en schrijft ze naar een andere stream. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream, CancellationToken) |
Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stream met behulp van een opgegeven annuleringstoken. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte en annuleringstoken. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream, Int32) |
Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream) |
Asynchroon leest de bytes uit de huidige stream en schrijft ze naar een andere stream. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CreateObjRef(Type) |
Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object. (Overgenomen van MarshalByRefObject) |
| CreateWaitHandle() |
Verouderd.
Wijst een WaitHandle object toe. (Overgenomen van Stream) |
| Dispose() |
Alle resources die worden gebruikt door de Stream. (Overgenomen van Stream) |
| Dispose(Boolean) |
Publiceert de niet-beheerde resources die door de PipeStream klasse worden gebruikt en brengt eventueel de beheerde resources vrij. (Overgenomen van PipeStream) |
| DisposeAsync() |
Geeft asynchroon de onbeheerde resources vrij die worden gebruikt door de Stream. (Overgenomen van Stream) |
| EndRead(IAsyncResult) |
Hiermee wordt een asynchrone leesaanvraag beëindigd. (Overgenomen van PipeStream) |
| EndWrite(IAsyncResult) |
Hiermee wordt een asynchrone schrijfaanvraag beëindigd. (Overgenomen van PipeStream) |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| Finalize() |
Publiceert onbeheerde resources en voert andere opschoonbewerkingen uit voordat het AnonymousPipeClientStream exemplaar wordt vrijgemaakt door garbagecollection. |
| Flush() |
Wist de buffer voor de huidige stroom en zorgt ervoor dat gebufferde gegevens naar het onderliggende apparaat worden geschreven. (Overgenomen van PipeStream) |
| FlushAsync() |
Asynchroon wist alle buffers voor deze stroom en zorgt ervoor dat eventuele gebufferde gegevens naar het onderliggende apparaat worden geschreven. (Overgenomen van Stream) |
| FlushAsync(CancellationToken) |
Asynchroon wist alle buffers voor deze stroom, zorgt ervoor dat gebufferde gegevens naar het onderliggende apparaat worden geschreven en annuleringsaanvragen worden gecontroleerd. (Overgenomen van Stream) |
| GetAccessControl() |
Hiermee haalt u een PipeSecurity object op dat de toegangsbeheerlijstvermeldingen (ACL) inkapselt voor de pijp die wordt beschreven door het huidige PipeStream object. (Overgenomen van PipeStream) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetLifetimeService() |
Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd. (Overgenomen van MarshalByRefObject) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| InitializeHandle(SafePipeHandle, Boolean, Boolean) |
Initialiseert een PipeStream object van het opgegeven SafePipeHandle object. (Overgenomen van PipeStream) |
| InitializeLifetimeService() |
Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren. (Overgenomen van MarshalByRefObject) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| MemberwiseClone(Boolean) |
Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object. (Overgenomen van MarshalByRefObject) |
| ObjectInvariant() |
Verouderd.
Biedt ondersteuning voor een Contract. (Overgenomen van Stream) |
| Read(Byte[], Int32, Int32) |
Leest een blok bytes uit een stream en schrijft de gegevens naar een opgegeven buffer vanaf een opgegeven positie voor een opgegeven lengte. (Overgenomen van PipeStream) |
| Read(Span<Byte>) |
Hiermee wordt een reeks bytes uit de huidige stroom gelezen, naar een bytematrix geschreven en wordt de positie binnen de stream verplaatst door het aantal gelezen bytes. (Overgenomen van PipeStream) |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchroon leest een reeks bytes van de huidige stroom naar een bytematrix die begint op een opgegeven positie voor een opgegeven aantal bytes, de positie binnen de stream door het aantal gelezen bytes en bewaakt annuleringsaanvragen. (Overgenomen van PipeStream) |
| ReadAsync(Byte[], Int32, Int32) |
Asynchroon leest een reeks bytes uit de huidige stroom en wordt de positie binnen de stream verplaatst door het aantal gelezen bytes. (Overgenomen van Stream) |
| ReadAsync(Memory<Byte>, CancellationToken) |
Asynchroon leest een reeks bytes uit de huidige stroom, schrijft deze naar een bytegeheugenbereik, verplaatst de positie in de stream door het aantal bytes lezen en bewaakt annuleringsaanvragen. (Overgenomen van PipeStream) |
| ReadByte() |
Leest een byte uit een pijp. (Overgenomen van PipeStream) |
| Seek(Int64, SeekOrigin) |
Hiermee stelt u de huidige positie van de huidige stroom in op de opgegeven waarde. (Overgenomen van PipeStream) |
| SetAccessControl(PipeSecurity) |
Hiermee past u de ACL-vermeldingen (Access Control List) toe die zijn opgegeven door een PipeSecurity object op de pijp die is opgegeven door het huidige PipeStream object. (Overgenomen van PipeStream) |
| SetLength(Int64) |
Hiermee stelt u de lengte van de huidige stroom in op de opgegeven waarde. (Overgenomen van PipeStream) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
| WaitForPipeDrain() |
Wacht tot het andere einde van de pijp alle verzonden bytes heeft gelezen. (Overgenomen van PipeStream) |
| Write(Byte[], Int32, Int32) |
Hiermee schrijft u een blok bytes naar de huidige stroom met behulp van gegevens uit een buffer. (Overgenomen van PipeStream) |
| Write(ReadOnlySpan<Byte>) |
Hiermee schrijft u een reeks bytes naar de huidige stroom en wordt de huidige positie binnen deze stroom verplaatst door het aantal geschreven bytes. (Overgenomen van PipeStream) |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchroon schrijft een opgegeven aantal bytes van een bytematrix vanaf een opgegeven positie, wordt de huidige positie binnen deze stroom vooruitgegaan door het aantal geschreven bytes en worden annuleringsaanvragen gecontroleerd. (Overgenomen van PipeStream) |
| WriteAsync(Byte[], Int32, Int32) |
Asynchroon schrijft een reeks bytes naar de huidige stroom en wordt de huidige positie binnen deze stroom verplaatst door het aantal geschreven bytes. (Overgenomen van Stream) |
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Asynchroon schrijft een reeks bytes naar de huidige stroom, verplaatst de huidige positie binnen deze stream door het aantal geschreven bytes en bewaakt annuleringsaanvragen. (Overgenomen van PipeStream) |
| WriteByte(Byte) |
Hiermee schrijft u een byte naar de huidige stream. (Overgenomen van PipeStream) |
Extensiemethoden
| Name | Description |
|---|---|
| ConfigureAwait(IAsyncDisposable, Boolean) |
Hiermee configureert u hoe wacht op de taken die worden geretourneerd op basis van een asynchroon wegwerp, worden uitgevoerd. |