NamedPipeServerStream Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Uwidacznia Stream wokół nazwanego potoku, obsługując zarówno operacje synchroniczne, jak i asynchroniczne operacji odczytu i zapisu.
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
- Dziedziczenie
- Dziedziczenie
Przykłady
W poniższym przykładzie pokazano sposób wysyłania ciągu z procesu nadrzędnego do procesu podrzędnego na tym samym komputerze przy użyciu nazwanych potoków. W tym przykładzie tworzony jest obiekt NamedPipeServerStream w procesie nadrzędnym z wartością PipeDirectionOut. Następnie serwer czeka na NamedPipeClientStream obiektu w procesie podrzędnym, aby nawiązać z nim połączenie. W tym przykładzie oba procesy znajdują się na tym samym komputerze, a obiekt NamedPipeClientStream ma wartość PipeDirectionIn. Proces nadrzędny wysyła następnie ciąg dostarczony przez użytkownika do procesu podrzędnego. Ciąg jest wyświetlany w konsoli programu .
Ten przykład dotyczy procesu serwera, który używa klasy NamedPipeServerStream. Dla całego przykładu kodu, w tym kodu zarówno dla klienta potoku, jak i serwera, zobacz Instrukcje: używanie nazwanych potoków dla komunikacji międzyprocesowej sieci.
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
Uwagi
Nazwane potoki zapewniają potoki jednokierunkowe lub dwukierunkowe do komunikacji między serwerem potoku a co najmniej jednym klientem potoku. Nazwane potoki mogą służyć do komunikacji międzyprocesowej lokalnie lub za pośrednictwem sieci. Pojedyncza nazwa potoku może być współdzielona przez wiele obiektów NamedPipeClientStream.
Każdy proces może działać jako nazwany serwer potoku lub klient albo oba te procesy.
Konstruktory
NamedPipeServerStream(PipeDirection, Boolean, Boolean, SafePipeHandle) |
Inicjuje nowe wystąpienie klasy NamedPipeServerStream z określonego uchwytu potoku. |
NamedPipeServerStream(String) |
Inicjuje nowe wystąpienie klasy NamedPipeServerStream o określonej nazwie potoku. |
NamedPipeServerStream(String, PipeDirection) |
Inicjuje nowe wystąpienie klasy NamedPipeServerStream z określoną nazwą potoku i kierunkiem potoku. |
NamedPipeServerStream(String, PipeDirection, Int32) |
Inicjuje nowe wystąpienie klasy NamedPipeServerStream o określonej nazwie potoku, kierunku potoku i maksymalnej liczbie wystąpień serwera. |
NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode) |
Inicjuje nowe wystąpienie klasy NamedPipeServerStream z określoną nazwą potoku, kierunkiem potoku, maksymalną liczbą wystąpień serwera i trybem transmisji. |
NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions) |
Inicjuje nowe wystąpienie klasy NamedPipeServerStream z określoną nazwą potoku, kierunkiem potoku, maksymalną liczbą wystąpień serwera, trybem transmisji i opcjami potoku. |
NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32) |
Inicjuje nowe wystąpienie klasy NamedPipeServerStream z określoną nazwą potoku, kierunkiem potoku, maksymalną liczbą wystąpień serwera, trybem transmisji, opcjami potoku oraz zalecanymi rozmiarami i wychodzących. |
NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32, PipeSecurity) |
Inicjuje nowe wystąpienie klasy NamedPipeServerStream z określoną nazwą potoku, kierunkiem potoku, maksymalną liczbą wystąpień serwera, trybem transmisji, opcjami potoku, zalecanymi rozmiarami i zabezpieczeniami potoku. |
NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32, PipeSecurity, HandleInheritability) |
Inicjuje nowe wystąpienie klasy NamedPipeServerStream z określoną nazwą potoku, kierunkiem potoku, maksymalną liczbą wystąpień serwera, trybem transmisji, opcjami potoku, zalecanymi rozmiarami buforu, zabezpieczeniami potoków i trybem dziedziczenia. |
NamedPipeServerStream(String, PipeDirection, Int32, PipeTransmissionMode, PipeOptions, Int32, Int32, PipeSecurity, HandleInheritability, PipeAccessRights) |
Inicjuje nowe wystąpienie klasy NamedPipeServerStream z określoną nazwą potoku, kierunkiem potoku, maksymalną liczbą wystąpień serwera, trybem transmisji, opcjami potoku, zalecanymi rozmiarami buforu, zabezpieczeniami potoków, trybem dziedziczenia i prawami dostępu potoku. |
Pola
MaxAllowedServerInstances |
Reprezentuje maksymalną liczbę wystąpień serwera, na które zezwalają zasoby systemowe. |
Właściwości
CanRead |
Pobiera wartość wskazującą, czy bieżący strumień obsługuje operacje odczytu. (Odziedziczone po PipeStream) |
CanSeek |
Pobiera wartość wskazującą, czy bieżący strumień obsługuje operacje wyszukiwania. (Odziedziczone po PipeStream) |
CanTimeout |
Pobiera wartość określającą, czy bieżący strumień może upłynął limit czasu. (Odziedziczone po Stream) |
CanWrite |
Pobiera wartość wskazującą, czy bieżący strumień obsługuje operacje zapisu. (Odziedziczone po PipeStream) |
InBufferSize |
Pobiera rozmiar w bajtach buforu przychodzącego dla potoku. (Odziedziczone po PipeStream) |
IsAsync |
Pobiera wartość wskazującą, czy obiekt PipeStream został otwarty asynchronicznie lub synchronicznie. (Odziedziczone po PipeStream) |
IsConnected |
Pobiera lub ustawia wartość wskazującą, czy obiekt PipeStream jest połączony. (Odziedziczone po PipeStream) |
IsHandleExposed |
Pobiera wartość wskazującą, czy dojście do obiektu PipeStream jest uwidocznione. (Odziedziczone po PipeStream) |
IsMessageComplete |
Pobiera wartość wskazującą, czy w komunikacie zwróconym z najnowszej operacji odczytu jest więcej danych. (Odziedziczone po PipeStream) |
Length |
Pobiera długość strumienia w bajtach. (Odziedziczone po PipeStream) |
OutBufferSize |
Pobiera rozmiar w bajtach buforu wychodzącego dla potoku. (Odziedziczone po PipeStream) |
Position |
Pobiera lub ustawia bieżącą pozycję bieżącego strumienia. (Odziedziczone po PipeStream) |
ReadMode |
Pobiera lub ustawia tryb odczytu dla obiektu PipeStream. (Odziedziczone po PipeStream) |
ReadTimeout |
Pobiera lub ustawia wartość w milisekundach, która określa, jak długo strumień będzie próbował odczytać przed upływem limitu czasu. (Odziedziczone po Stream) |
SafePipeHandle |
Pobiera bezpieczny uchwyt dla lokalnego końca potoku, który jest hermetyzowany przez bieżący obiekt PipeStream. (Odziedziczone po PipeStream) |
TransmissionMode |
Pobiera tryb transmisji potoku obsługiwany przez bieżący potok. (Odziedziczone po PipeStream) |
WriteTimeout |
Pobiera lub ustawia wartość w milisekundach, która określa, jak długo strumień będzie próbował zapisać przed upływem limitu czasu. (Odziedziczone po Stream) |
Metody
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Rozpoczyna operację odczytu asynchronicznego. (Odziedziczone po PipeStream) |
BeginWaitForConnection(AsyncCallback, Object) |
Rozpoczyna operację asynchroniczną, aby poczekać na nawiązanie połączenia przez klienta. |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Rozpoczyna asynchroniczną operację zapisu. (Odziedziczone po PipeStream) |
CheckPipePropertyOperations() |
Sprawdza, czy potok jest w odpowiednim stanie do pobierania lub ustawiania właściwości. (Odziedziczone po PipeStream) |
CheckReadOperations() |
Sprawdza, czy potok jest w stanie połączonym dla operacji odczytu. (Odziedziczone po PipeStream) |
CheckWriteOperations() |
Sprawdza, czy potok jest w stanie połączonym dla operacji zapisu. (Odziedziczone po PipeStream) |
Close() |
Zamyka bieżący strumień i zwalnia wszystkie zasoby (takie jak gniazda i dojścia plików) skojarzone z bieżącym strumieniem. Zamiast wywoływać tę metodę, upewnij się, że strumień jest prawidłowo usuwany. (Odziedziczone po Stream) |
CopyTo(Stream) |
Odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu. Obie pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów. (Odziedziczone po Stream) |
CopyTo(Stream, Int32) |
Odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego rozmiaru buforu. Obie pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów. (Odziedziczone po Stream) |
CopyToAsync(Stream) |
Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu. Obie pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów. (Odziedziczone po Stream) |
CopyToAsync(Stream, CancellationToken) |
Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego tokenu anulowania. Obie pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów. (Odziedziczone po Stream) |
CopyToAsync(Stream, Int32) |
Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego rozmiaru buforu. Obie pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów. (Odziedziczone po Stream) |
CopyToAsync(Stream, Int32, CancellationToken) |
Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego rozmiaru buforu i tokenu anulowania. Obie pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów. (Odziedziczone po Stream) |
CreateObjRef(Type) |
Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym. (Odziedziczone po MarshalByRefObject) |
CreateWaitHandle() |
Przestarzałe.
Przestarzałe.
Przestarzałe.
Przydziela obiekt WaitHandle. (Odziedziczone po Stream) |
Disconnect() |
Rozłącza bieżące połączenie. |
Dispose() |
Zwalnia wszystkie zasoby używane przez Stream. (Odziedziczone po Stream) |
Dispose(Boolean) |
Zwalnia niezarządzane zasoby używane przez klasę PipeStream i opcjonalnie zwalnia zarządzane zasoby. (Odziedziczone po PipeStream) |
DisposeAsync() |
Asynchronicznie zwalnia niezarządzane zasoby używane przez Stream. (Odziedziczone po Stream) |
EndRead(IAsyncResult) |
Kończy oczekujące żądanie odczytu asynchronicznego. (Odziedziczone po PipeStream) |
EndWaitForConnection(IAsyncResult) |
Kończy operację asynchroniczną, aby poczekać na połączenie klienta. |
EndWrite(IAsyncResult) |
Kończy oczekujące żądanie asynchronicznego zapisu. (Odziedziczone po PipeStream) |
Equals(Object) |
Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object) |
Finalize() |
Zwalnia niezarządzane zasoby i wykonuje inne operacje oczyszczania przed odzyskaniem wystąpienia NamedPipeServerStream przez odzyskiwanie pamięci. |
Flush() |
Czyści bufor dla bieżącego strumienia i powoduje zapisanie wszystkich buforowanych danych na urządzeniu źródłowym. (Odziedziczone po PipeStream) |
FlushAsync() |
Asynchronicznie czyści wszystkie dla tego strumienia i powoduje zapisanie wszystkich buforowanych danych na urządzeniu bazowym. (Odziedziczone po Stream) |
FlushAsync(CancellationToken) |
Asynchronicznie czyści bufor dla bieżącego strumienia i powoduje zapisanie wszystkich buforowanych danych na urządzeniu bazowym. (Odziedziczone po PipeStream) |
GetAccessControl() |
Pobiera obiekt PipeSecurity, który hermetyzuje wpisy listy kontroli dostępu (ACL) dla potoku opisanego przez bieżący obiekt PipeStream. (Odziedziczone po PipeStream) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetImpersonationUserName() |
Pobiera nazwę użytkownika klienta na drugim końcu potoku. |
GetLifetimeService() |
Przestarzałe.
Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
InitializeHandle(SafePipeHandle, Boolean, Boolean) |
Inicjuje obiekt PipeStream z określonego obiektu SafePipeHandle. (Odziedziczone po PipeStream) |
InitializeLifetimeService() |
Przestarzałe.
Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
MemberwiseClone(Boolean) |
Tworzy płytkią kopię bieżącego obiektu MarshalByRefObject. (Odziedziczone po MarshalByRefObject) |
ObjectInvariant() |
Przestarzałe.
Zapewnia obsługę Contract. (Odziedziczone po Stream) |
Read(Byte[], Int32, Int32) |
Odczytuje blok bajtów ze strumienia i zapisuje dane w określonym buforze rozpoczynającym się od określonej pozycji dla określonej długości. (Odziedziczone po PipeStream) |
Read(Span<Byte>) |
Odczytuje sekwencję bajtów z bieżącego strumienia, zapisuje je w tablicy bajtów i rozwija pozycję w strumieniu według liczby odczytanych bajtów. (Odziedziczone po PipeStream) |
ReadAsync(Byte[], Int32, Int32) |
Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia i rozwija pozycję w strumieniu według liczby odczytanych bajtów. (Odziedziczone po Stream) |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia do tablicy bajtów rozpoczynającej się od określonej liczby bajtów, przechodzi pozycję w strumieniu według liczby odczytanych bajtów i monitoruje żądania anulowania. (Odziedziczone po PipeStream) |
ReadAsync(Memory<Byte>, CancellationToken) |
Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia, zapisuje je w zakresie pamięci bajtów, rozwija pozycję w strumieniu według liczby odczytanych bajtów i monitoruje żądania anulowania. (Odziedziczone po PipeStream) |
ReadAtLeast(Span<Byte>, Int32, Boolean) |
Odczytuje co najmniej minimalną liczbę bajtów z bieżącego strumienia i rozwija pozycję w strumieniu według liczby odczytanych bajtów. (Odziedziczone po Stream) |
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Asynchronicznie odczytuje co najmniej minimalną liczbę bajtów z bieżącego strumienia, zwiększa pozycję w strumieniu przez liczbę odczytanych bajtów i monitoruje żądania anulowania. (Odziedziczone po Stream) |
ReadByte() |
Odczytuje bajt z potoku. (Odziedziczone po PipeStream) |
ReadExactly(Byte[], Int32, Int32) |
Odczytuje |
ReadExactly(Span<Byte>) |
Odczytuje bajty z bieżącego strumienia i przesuwa pozycję w strumieniu do momentu wypełnienia |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronicznie odczytuje |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Asynchronicznie odczytuje bajty z bieżącego strumienia, przechodzi pozycję w strumieniu do momentu wypełnienia |
RunAsClient(PipeStreamImpersonationWorker) |
Wywołuje delegata podczas personifikacji klienta. |
Seek(Int64, SeekOrigin) |
Ustawia bieżące położenie bieżącego strumienia na określoną wartość. (Odziedziczone po PipeStream) |
SetAccessControl(PipeSecurity) |
Stosuje wpisy listy kontroli dostępu (ACL) określone przez obiekt PipeSecurity do potoku określonego przez bieżący obiekt PipeStream. (Odziedziczone po PipeStream) |
SetLength(Int64) |
Ustawia długość bieżącego strumienia na określoną wartość. (Odziedziczone po PipeStream) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
WaitForConnection() |
Czeka na nawiązanie połączenia z tym obiektem NamedPipeServerStream przez klienta. |
WaitForConnectionAsync() |
Asynchronicznie czeka, aż klient połączy się z tym obiektem NamedPipeServerStream. |
WaitForConnectionAsync(CancellationToken) |
Asynchronicznie czeka, aż klient połączy się z tym obiektem NamedPipeServerStream i monitoruje żądania anulowania. |
WaitForPipeDrain() |
Czeka na drugi koniec potoku, aby odczytać wszystkie wysłane bajty. (Odziedziczone po PipeStream) |
Write(Byte[], Int32, Int32) |
Zapisuje blok bajtów w bieżącym strumieniu przy użyciu danych z buforu. (Odziedziczone po PipeStream) |
Write(ReadOnlySpan<Byte>) |
Zapisuje sekwencję bajtów w bieżącym strumieniu i przechodzi bieżącą pozycję w tym strumieniu przez liczbę zapisanych bajtów. (Odziedziczone po PipeStream) |
WriteAsync(Byte[], Int32, Int32) |
Asynchronicznie zapisuje sekwencję bajtów do bieżącego strumienia i przechodzi bieżącą pozycję w tym strumieniu przez liczbę zapisanych bajtów. (Odziedziczone po Stream) |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronicznie zapisuje określoną liczbę bajtów z tablicy bajtów rozpoczynającej się od określonej pozycji, przechodzi bieżącą pozycję w tym strumieniu przez liczbę zapisanych bajtów i monitoruje żądania anulowania. (Odziedziczone po PipeStream) |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Asynchronicznie zapisuje sekwencję bajtów w bieżącym strumieniu, przechodzi bieżącą pozycję w tym strumieniu przez liczbę zapisanych bajtów i monitoruje żądania anulowania. (Odziedziczone po PipeStream) |
WriteByte(Byte) |
Zapisuje bajt do bieżącego strumienia. (Odziedziczone po PipeStream) |
Metody rozszerzania
CopyToAsync(Stream, PipeWriter, CancellationToken) |
Asynchronicznie odczytuje bajty z Stream i zapisuje je w określonym PipeWriterprzy użyciu tokenu anulowania. |
GetAccessControl(PipeStream) |
Zwraca informacje o zabezpieczeniach strumienia potoku. |
SetAccessControl(PipeStream, PipeSecurity) |
Zmienia atrybuty zabezpieczeń istniejącego strumienia potoku. |
ConfigureAwait(IAsyncDisposable, Boolean) |
Konfiguruje, w jaki sposób będą wykonywane oczekiwania na zadania zwrócone z asynchronicznego jednorazowego użytku. |