NamedPipeServerStream Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zpřístupňuje pojmenovaný Stream kanál, který podporuje synchronní i asynchronní operace čtení a zápisu.
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
- Dědičnost
- Dědičnost
Příklady
Následující příklad ukazuje způsob odeslání řetězce z nadřazeného procesu podřízeného procesu ve stejném počítači pomocí pojmenovaných kanálů. Tento příklad vytvoří NamedPipeServerStream objekt v nadřazeného procesu s PipeDirection hodnotou Out. Server pak počká, až se NamedPipeClientStream k němu objekt v podřízené procesu připojí. V tomto příkladu jsou oba procesy ve stejném počítači a NamedPipeClientStream objekt má PipeDirection hodnotu In. Nadřazený proces poté odešle řetězec zadaný uživatelem podřízenému procesu. Řetězec se zobrazí v konzole nástroje .
Tento příklad je určený pro serverový proces, který používá NamedPipeServerStream třídu . Celý příklad kódu, včetně kódu pro klienta kanálu i server, najdete v tématu Postupy: Použití pojmenovaných kanálů pro komunikaci mezi procesy sítě.
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
Poznámky
Pojmenované kanály poskytují jednosměrné nebo duplexní kanály pro komunikaci mezi serverem kanálu a jedním nebo více klienty kanálu. Pojmenované kanály se dají použít pro meziprocesovou komunikaci místně nebo přes síť. Jeden název kanálu může být sdílen více NamedPipeClientStream objekty.
Jakýkoli proces může fungovat jako server pojmenovaného kanálu, klient nebo obojí.
Konstruktory
NamedPipeServerStream(PipeDirection, Boolean, Boolean, SafePipeHandle) |
Inicializuje novou instanci NamedPipeServerStream třídy ze zadaného úchytu potrubí. |
NamedPipeServerStream(String) |
Inicializuje novou instanci NamedPipeServerStream třídy se zadaným názvem kanálu. |
NamedPipeServerStream(String, PipeDirection) |
Inicializuje novou instanci NamedPipeServerStream třídy se zadaným názvem kanálu a směrem kanálu. |
NamedPipeServerStream(String, PipeDirection, Int32) |
Inicializuje novou instanci NamedPipeServerStream třídy se zadaným názvem kanálu, směrem kanálu a maximálním počtem instancí serveru. |
NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode) |
Inicializuje novou instanci NamedPipeServerStream třídy se zadaným názvem kanálu, směrem kanálu, maximálním počtem instancí serveru a režimem přenosu. |
NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions) |
Inicializuje novou instanci NamedPipeServerStream třídy se zadaným názvem kanálu, směrem kanálu, maximálním počtem instancí serveru, režimem přenosu a možnostmi kanálu. |
NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32) |
Inicializuje novou instanci NamedPipeServerStream třídy se zadaným názvem kanálu, směrem kanálu, maximálním počtem instancí serveru, režimem přenosu, možnostmi kanálu a doporučenými velikostmi vyrovnávací paměti. |
NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32, PipeSecurity) |
Inicializuje novou instanci NamedPipeServerStream třídy se zadaným názvem kanálu, směrem kanálu, maximálním počtem instancí serveru, režimem přenosu, možnostmi kanálu, doporučenými velikostmi vyrovnávací paměti a zabezpečením kanálu. |
NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32, PipeSecurity, HandleInheritability) |
Inicializuje novou instanci NamedPipeServerStream třídy se zadaným názvem kanálu, směrem kanálu, maximálním počtem instancí serveru, režimem přenosu, možnostmi kanálu, doporučenými velikostmi vyrovnávací paměti, zabezpečením kanálu a režimem dědičnosti. |
NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32, PipeSecurity, HandleInheritability, PipeAccessRights) |
Inicializuje novou instanci NamedPipeServerStream třídy se zadaným názvem kanálu, směrem kanálu, maximálním počtem instancí serveru, režimem přenosu, možnostmi kanálu, doporučenými velikostmi vyrovnávací paměti, zabezpečením kanálu, režimem dědičnosti a přístupovými právy kanálu. |
Pole
MaxAllowedServerInstances |
Představuje maximální počet instancí serveru, které systémové prostředky umožňují. |
Vlastnosti
CanRead |
Získá hodnotu označující, zda aktuální datový proud podporuje operace čtení. (Zděděno od PipeStream) |
CanSeek |
Získá hodnotu označující, zda aktuální datový proud podporuje operace hledání. (Zděděno od PipeStream) |
CanTimeout |
Získá hodnotu, která určuje, zda aktuální datový proud může vypršení časového limitu. (Zděděno od Stream) |
CanWrite |
Získá hodnotu označující, zda aktuální datový proud podporuje operace zápisu. (Zděděno od PipeStream) |
InBufferSize |
Získá velikost v bajtech příchozí vyrovnávací paměti pro kanál. (Zděděno od PipeStream) |
IsAsync |
Získá hodnotu označující, zda PipeStream byl objekt otevřen asynchronně nebo synchronně. (Zděděno od PipeStream) |
IsConnected |
Získá nebo nastaví hodnotu označující, zda PipeStream je objekt připojen. (Zděděno od PipeStream) |
IsHandleExposed |
Získá hodnotu označující, zda je vystaven popisovač objektu PipeStream . (Zděděno od PipeStream) |
IsMessageComplete |
Získá hodnotu označující, zda je více dat ve zprávě vrácena z poslední operace čtení. (Zděděno od PipeStream) |
Length |
Získá délku datového proudu v bajtech. (Zděděno od PipeStream) |
OutBufferSize |
Získá velikost výstupní vyrovnávací paměti kanálu v bajtech. (Zděděno od PipeStream) |
Position |
Získá nebo nastaví aktuální pozici aktuálního datového proudu. (Zděděno od PipeStream) |
ReadMode |
Získá nebo nastaví režim čtení pro PipeStream objekt. (Zděděno od PipeStream) |
ReadTimeout |
Získá nebo nastaví hodnotu v milisekundách, která určuje, jak dlouho se datový proud pokusí číst před vypršením časového limitu. (Zděděno od Stream) |
SafePipeHandle |
Získá bezpečný popisovač pro místní konec potrubí, který aktuální PipeStream objekt zapouzdřuje. (Zděděno od PipeStream) |
TransmissionMode |
Získá režim přenosu potrubí podporovaný aktuálním potrubím. (Zděděno od PipeStream) |
WriteTimeout |
Získá nebo nastaví hodnotu v milisekundách, která určuje, jak dlouho se datový proud pokusí zapisovat před vypršením časového limitu. (Zděděno od Stream) |
Metody
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Spustí asynchronní operaci čtení. (Zděděno od PipeStream) |
BeginWaitForConnection(AsyncCallback, Object) |
Zahájí asynchronní operaci, která počká na připojení klienta. |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Spustí asynchronní operaci zápisu. (Zděděno od PipeStream) |
CheckPipePropertyOperations() |
Ověří, jestli je kanál ve správném stavu pro získání nebo nastavení vlastností. (Zděděno od PipeStream) |
CheckReadOperations() |
Ověří, že kanál je v připojeném stavu pro operace čtení. (Zděděno od PipeStream) |
CheckWriteOperations() |
Ověří, že kanál je v připojeném stavu pro operace zápisu. (Zděděno od PipeStream) |
Close() |
Zavře aktuální datový proud a uvolní všechny prostředky (například sokety a popisovače souborů) přidružené k aktuálnímu datovému proudu. Místo volání této metody se ujistěte, že je datový proud správně odstraněn. (Zděděno od Stream) |
CopyTo(Stream) |
Přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů. (Zděděno od Stream) |
CopyTo(Stream, Int32) |
Přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů. (Zděděno od Stream) |
CopyToAsync(Stream) |
Asynchronně přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů. (Zděděno od Stream) |
CopyToAsync(Stream, CancellationToken) |
Asynchronně přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu pomocí zadaného tokenu zrušení. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů. (Zděděno od Stream) |
CopyToAsync(Stream, Int32) |
Asynchronně přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů. (Zděděno od Stream) |
CopyToAsync(Stream, Int32, CancellationToken) |
Asynchronně přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti a tokenu zrušení. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů. (Zděděno od Stream) |
CreateObjRef(Type) |
Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy sloužící ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
CreateWaitHandle() |
Zastaralé.
Zastaralé.
Zastaralé.
Přidělí WaitHandle objekt. (Zděděno od Stream) |
Disconnect() |
Odpojí aktuální připojení. |
Dispose() |
Uvolní všechny prostředky používané nástrojem Stream. (Zděděno od Stream) |
Dispose(Boolean) |
Uvolní nespravované prostředky používané PipeStream třídou a volitelně uvolní spravované prostředky. (Zděděno od PipeStream) |
DisposeAsync() |
Asynchronně uvolní nespravované prostředky používané Streamnástrojem . (Zděděno od Stream) |
EndRead(IAsyncResult) |
Ukončí čekající asynchronní žádost o čtení. (Zděděno od PipeStream) |
EndWaitForConnection(IAsyncResult) |
Ukončí asynchronní operaci, která čeká na připojení klienta. |
EndWrite(IAsyncResult) |
Ukončí čekající asynchronní žádost o zápis. (Zděděno od PipeStream) |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
Finalize() |
Uvolní nespravované prostředky a provede další operace čištění před uvolněním NamedPipeServerStream instance uvolňováním paměti. |
Flush() |
Vymaže vyrovnávací paměť aktuálního datového proudu a způsobí zápis všech dat do vyrovnávací paměti do příslušného zařízení. (Zděděno od PipeStream) |
FlushAsync() |
Asynchronně vymaže všechny vyrovnávací paměti pro tento datový proud a způsobí zápis všech dat do vyrovnávací paměti do základního zařízení. (Zděděno od Stream) |
FlushAsync(CancellationToken) |
Asynchronně vymaže vyrovnávací paměť pro aktuální datový proud a způsobí zápis všech dat do vyrovnávací paměti do základního zařízení. (Zděděno od PipeStream) |
GetAccessControl() |
PipeSecurity Získá objekt, který zapouzdřuje položky seznamu řízení přístupu (ACL) pro potrubí popsané aktuálním PipeStream objektem. (Zděděno od PipeStream) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetImpersonationUserName() |
Získá uživatelské jméno klienta na druhém konci kanálu. |
GetLifetimeService() |
Zastaralé.
Načte aktuální životnost objektu služby, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
InitializeHandle(SafePipeHandle, Boolean, Boolean) |
Inicializuje PipeStream objekt ze zadaného SafePipeHandle objektu. (Zděděno od PipeStream) |
InitializeLifetimeService() |
Zastaralé.
Získá životnost objektu služby, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu. (Zděděno od MarshalByRefObject) |
ObjectInvariant() |
Zastaralé.
Poskytuje podporu pro Contract. (Zděděno od Stream) |
Read(Byte[], Int32, Int32) |
Načte blok bajtů z datového proudu a zapíše data do zadané vyrovnávací paměti počínaje zadanou polohou na zadanou délku. (Zděděno od PipeStream) |
Read(Span<Byte>) |
Přečte posloupnost bajtů z aktuálního datového proudu, zapíše je do pole bajtů a posune pozici v rámci datového proudu o počet přečtených bajtů. (Zděděno od PipeStream) |
ReadAsync(Byte[], Int32, Int32) |
Asynchronně přečte posloupnost bajtů z aktuálního datového proudu a posune pozici v rámci datového proudu o počet přečtených bajtů. (Zděděno od Stream) |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronně přečte posloupnost bajtů z aktuálního datového proudu do pole bajtů počínaje zadanou pozicí pro zadaný počet bajtů, posune pozici v rámci datového proudu o počet přečtených bajtů a monitoruje požadavky na zrušení. (Zděděno od PipeStream) |
ReadAsync(Memory<Byte>, CancellationToken) |
Asynchronně přečte posloupnost bajtů z aktuálního datového proudu, zapíše je do rozsahu paměti bajtů, posune pozici v rámci datového proudu o počet přečtených bajtů a monitoruje požadavky na zrušení. (Zděděno od PipeStream) |
ReadAtLeast(Span<Byte>, Int32, Boolean) |
Přečte alespoň minimální počet bajtů z aktuálního datového proudu a posune pozici v rámci streamu o počet přečtených bajtů. (Zděděno od Stream) |
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Asynchronně přečte alespoň minimální počet bajtů z aktuálního datového proudu, posune pozici v rámci streamu o počet přečtených bajtů a monitoruje žádosti o zrušení. (Zděděno od Stream) |
ReadByte() |
Načte bajt z potrubí. (Zděděno od PipeStream) |
ReadExactly(Byte[], Int32, Int32) |
|
ReadExactly(Span<Byte>) |
Přečte bajty z aktuálního datového proudu a posune pozici v rámci streamu, dokud |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronně přečte |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Asynchronně čte bajty z aktuálního datového proudu, posune pozici v rámci streamu, dokud |
RunAsClient(PipeStreamImpersonationWorker) |
Zavolá delegáta při zosobnění klienta. |
Seek(Int64, SeekOrigin) |
Nastaví aktuální pozici aktuálního datového proudu na zadanou hodnotu. (Zděděno od PipeStream) |
SetAccessControl(PipeSecurity) |
Použije položky seznamu řízení přístupu (ACL) určené objektem PipeSecurity na kanál určený aktuálním PipeStream objektem. (Zděděno od PipeStream) |
SetLength(Int64) |
Nastaví délku aktuálního datového proudu na zadanou hodnotu. (Zděděno od PipeStream) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
WaitForConnection() |
Čeká na připojení klienta k tomuto NamedPipeServerStream objektu. |
WaitForConnectionAsync() |
Asynchronně čeká na připojení klienta k tomuto NamedPipeServerStream objektu. |
WaitForConnectionAsync(CancellationToken) |
Asynchronně čeká na připojení klienta k tomuto NamedPipeServerStream objektu a monitoruje požadavky na zrušení. |
WaitForPipeDrain() |
Čeká, až druhý konec kanálu přečte všechny odeslané bajty. (Zděděno od PipeStream) |
Write(Byte[], Int32, Int32) |
Zapíše blok bajtů do aktuálního datového proudu pomocí dat z vyrovnávací paměti. (Zděděno od PipeStream) |
Write(ReadOnlySpan<Byte>) |
Zapíše posloupnost bajtů do aktuálního datového proudu a posune aktuální pozici v tomto streamu o počet zapsaných bajtů. (Zděděno od PipeStream) |
WriteAsync(Byte[], Int32, Int32) |
Asynchronně zapíše posloupnost bajtů do aktuálního datového proudu a posune aktuální pozici v rámci tohoto streamu o počet zapsaných bajtů. (Zděděno od Stream) |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronně zapíše zadaný počet bajtů z pole bajtů počínaje zadanou pozicí, posune aktuální pozici v tomto datovém proudu o počet zapsaných bajtů a monitoruje požadavky na zrušení. (Zděděno od PipeStream) |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Asynchronně zapíše posloupnost bajtů do aktuálního datového proudu, posune aktuální pozici v rámci tohoto streamu o počet zapsaných bajtů a monitoruje žádosti o zrušení. (Zděděno od PipeStream) |
WriteByte(Byte) |
Zapíše bajt do aktuálního datového proudu. (Zděděno od PipeStream) |
Metody rozšíření
CopyToAsync(Stream, PipeWriter, CancellationToken) |
Asynchronně přečte bajty z objektu Stream a zapíše je do zadaného PipeWriterobjektu pomocí tokenu zrušení. |
GetAccessControl(PipeStream) |
Vrátí informace o zabezpečení datového proudu kanálu. |
SetAccessControl(PipeStream, PipeSecurity) |
Změní atributy zabezpečení existujícího datového proudu kanálu. |
ConfigureAwait(IAsyncDisposable, Boolean) |
Konfiguruje, jak se provádí funkce awaits u úloh vrácených z asynchronního jednorázového režimu. |
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro