Aracılığıyla paylaş


AnonymousPipeClientStream Sınıf

Tanım

Hem zaman uyumlu hem de zaman uyumsuz okuma ve yazma işlemlerini destekleyen anonim kanal akışının istemci tarafını kullanıma sunar (Windows platformlarında iptal desteği olmadan).

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
Devralma
AnonymousPipeClientStream
Devralma
AnonymousPipeClientStream

Örnekler

Aşağıdaki örnek, anonim kanallar kullanarak bir üst işlemden alt işleme bir dize gönderir. Bu örnek, OutPipeDirection değeriyle üst işlemde bir AnonymousPipeServerStream nesnesi oluşturur. Ayrıca bir alt işlemde InPipeDirection değerine sahip bir AnonymousPipeClientStream nesnesi oluşturur. Üst işlem daha sonra alt işleme kullanıcı tarafından sağlanan bir dize gönderir. Dize konsolda görüntülenir.

Bu örnek, sunucu işlemi tarafından başlatılan istemci işlemine yöneliktir. İstemci kodundan elde edilen yürütülebilir dosyayı pipeClient.exe adlandırın ve bu örneği çalıştırdığınızda sunucu yürütülebilir dosyasıyla aynı dizine kopyalayın. Hem kanal istemcisinin hem de sunucunun kodu dahil olmak üzere kod örneğinin tamamı için bkz. Nasıl yapılır: Yerel İşlemler Arası İletişim için Anonim Kanalları Kullanma.

//<snippet01>
#using <System.Core.dll>

using namespace System;
using namespace System::IO;
using namespace System::IO::Pipes;

ref class PipeClient
{
public:
    static void Main(array<String^>^ args)
    {
        if (args->Length > 1)
        {
            PipeStream^ pipeClient = gcnew AnonymousPipeClientStream(PipeDirection::In, args[1]);

            Console::WriteLine("[CLIENT] Current TransmissionMode: {0}.",
                pipeClient->TransmissionMode);

            StreamReader^ sr = gcnew 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()) != nullptr)
            {
                Console::WriteLine("[CLIENT] Echo: " + temp);
            }
            sr->Close();
            pipeClient->Close();
        }
        Console::Write("[CLIENT] Press Enter to continue...");
        Console::ReadLine();
    }
};

int main()
{
    array<String^>^ args = Environment::GetCommandLineArgs();
    PipeClient::Main(args);
}
//</snippet01>
//<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>

Açıklamalar

Anonim kanallar, alt ve üst işlemler arasında güvenli ve güvenli işlemler arası iletişim sağlamaya yardımcı olur. AnonymousPipeClientStream sınıfı, bir alt işlemin bir üst işleme bağlanmasına ve bilgi alışverişinde bulunabilmesine olanak tanır.

Anonim kanallar, genellikle üst ve alt işlemler arasında veri aktaran adsız, tek yönlü kanallardır. Anonim kanallar her zaman yereldir; ağ üzerinden kullanılamazlar. Anonim kanallar tek yönlü olarak tanımlandığından InOutPipeDirection değeri desteklenmez.

Anonim kanallar PipeTransmissionMode.Message okuma modunu desteklemez.

Anonim kanalın istemci tarafı, GetClientHandleAsString yöntemi çağrılarak sunucu tarafından sağlanan bir kanal tutamacından oluşturulmalıdır. Daha sonra istemci işlemi oluşturulurken dize parametre olarak geçirilir. İstemci işleminden, pipeHandleAsString parametresi olarak AnonymousPipeClientStream oluşturucuya geçirilir.

Windows'da, zaman uyumsuz (çakışan) okuma ve yazma işlemleri anonim kanallar tarafından desteklenmez (bkz. anonim kanal işlemleri). AnonymousPipeClientStream sınıfı, zaman uyumsuz Stream işlemlerin çalışması için Windows platformlarında iş parçacığı havuzu üzerinde çalışmayı zamanlayacaktır, ancak bu işlemlerin iptali desteklenmez.

Oluşturucular

AnonymousPipeClientStream(PipeDirection, SafePipeHandle)

Belirtilen tanıtıcıdan AnonymousPipeClientStream sınıfının yeni bir örneğini başlatır.

AnonymousPipeClientStream(PipeDirection, String)

Belirtilen kanal yönü ve kanal tutamacının dize gösterimiyle AnonymousPipeClientStream sınıfının yeni bir örneğini başlatır.

AnonymousPipeClientStream(String)

kanal tutamacının belirtilen dize gösterimiyle AnonymousPipeClientStream sınıfının yeni bir örneğini başlatır.

Özellikler

CanRead

Geçerli akışın okuma işlemlerini destekleyip desteklemediğini belirten bir değer alır.

(Devralındığı yer: PipeStream)
CanSeek

Geçerli akışın arama işlemlerini destekleyip desteklemediğini belirten bir değer alır.

(Devralındığı yer: PipeStream)
CanTimeout

Geçerli akışın zaman aşımına neden olup olmadığını belirleyen bir değer alır.

(Devralındığı yer: Stream)
CanWrite

Geçerli akışın yazma işlemlerini destekleyip desteklemediğini belirten bir değer alır.

(Devralındığı yer: PipeStream)
InBufferSize

Bir kanal için gelen arabelleğin bayt cinsinden boyutunu alır.

(Devralındığı yer: PipeStream)
IsAsync

bir PipeStream nesnesinin zaman uyumsuz olarak mı yoksa zaman uyumlu olarak mı açıldığını gösteren bir değer alır.

(Devralındığı yer: PipeStream)
IsConnected

bir PipeStream nesnesinin bağlı olup olmadığını belirten bir değer alır veya ayarlar.

(Devralındığı yer: PipeStream)
IsHandleExposed

bir PipeStream nesnesi tanıtıcının kullanıma sunulduğunu belirten bir değer alır.

(Devralındığı yer: PipeStream)
IsMessageComplete

İletide en son okuma işleminden döndürülen daha fazla veri olup olmadığını belirten bir değer alır.

(Devralındığı yer: PipeStream)
Length

Bayt cinsinden bir akışın uzunluğunu alır.

(Devralındığı yer: PipeStream)
OutBufferSize

Bir kanal için giden arabelleğin bayt cinsinden boyutunu alır.

(Devralındığı yer: PipeStream)
Position

Geçerli akışın geçerli konumunu alır veya ayarlar.

(Devralındığı yer: PipeStream)
ReadMode

AnonymousPipeClientStream nesnesi için okuma modunu ayarlar.

ReadTimeout

Akışın zaman aşımına uğramadan önce ne kadar süreyle okumayı deneyeceğini belirleyen bir değeri milisaniye cinsinden alır veya ayarlar.

(Devralındığı yer: Stream)
SafePipeHandle

Geçerli PipeStream nesnesinin kapsüllediğini borunun yerel ucu için güvenli tutamacı alır.

(Devralındığı yer: PipeStream)
TransmissionMode

Geçerli boru tarafından desteklenen boru iletim modunu alır.

WriteTimeout

Akışın zaman aşımına uğramadan önce ne kadar süreyle yazmaya çalışacağını belirleyen bir değeri milisaniye cinsinden alır veya ayarlar.

(Devralındığı yer: Stream)

Yöntemler

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Zaman uyumsuz bir okuma işlemi başlatır.

(Devralındığı yer: PipeStream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Zaman uyumsuz bir yazma işlemi başlatır.

(Devralındığı yer: PipeStream)
CheckPipePropertyOperations()

Borunun özellikleri almak veya ayarlamak için uygun durumda olduğunu doğrular.

(Devralındığı yer: PipeStream)
CheckReadOperations()

Borunun okuma işlemleri için bağlı durumda olduğunu doğrular.

(Devralındığı yer: PipeStream)
CheckWriteOperations()

Kanal yazma işlemleri için bağlı durumda olduğunu doğrular.

(Devralındığı yer: PipeStream)
Close()

Geçerli akışı kapatır ve geçerli akışla ilişkili tüm kaynakları (yuvalar ve dosya tanıtıcıları gibi) serbest bırakır. Bu yöntemi çağırmak yerine akışın düzgün şekilde atıldığından emin olun.

(Devralındığı yer: Stream)
CopyTo(Stream)

Geçerli akıştan baytları okur ve başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyTo(Stream, Int32)

Geçerli akıştan baytları okur ve belirtilen arabellek boyutunu kullanarak başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyToAsync(Stream)

Geçerli akıştan gelen baytları zaman uyumsuz olarak okur ve başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyToAsync(Stream, CancellationToken)

Geçerli akıştan gelen baytları zaman uyumsuz olarak okur ve belirtilen iptal belirtecini kullanarak başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyToAsync(Stream, Int32)

Geçerli akıştan gelen baytları zaman uyumsuz olarak okur ve belirtilen arabellek boyutunu kullanarak başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Belirtilen arabellek boyutu ve iptal belirtecini kullanarak geçerli akıştan baytları zaman uyumsuz olarak okur ve başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur.

(Devralındığı yer: MarshalByRefObject)
CreateWaitHandle()
Geçersiz.
Geçersiz.
Geçersiz.

bir WaitHandle nesnesi ayırır.

(Devralındığı yer: Stream)
Dispose()

Streamtarafından kullanılan tüm kaynakları serbest bırakır.

(Devralındığı yer: Stream)
Dispose(Boolean)

PipeStream sınıfı tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları serbest bırakır.

(Devralındığı yer: PipeStream)
DisposeAsync()

Streamtarafından kullanılan yönetilmeyen kaynakları zaman uyumsuz olarak serbest bırakır.

(Devralındığı yer: Stream)
EndRead(IAsyncResult)

Bekleyen zaman uyumsuz okuma isteğini sonlandırır.

(Devralındığı yer: PipeStream)
EndWrite(IAsyncResult)

Bekleyen zaman uyumsuz yazma isteğini sonlandırır.

(Devralındığı yer: PipeStream)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
Finalize()

Yönetilmeyen kaynakları serbest bırakır ve AnonymousPipeClientStream örneği çöp toplama tarafından geri kazanılmadan önce diğer temizleme işlemlerini gerçekleştirir.

Flush()

Geçerli akış için arabelleği temizler ve arabelleğe alınan verilerin temel alınan cihaza yazılmasına neden olur.

(Devralındığı yer: PipeStream)
FlushAsync()

Bu akış için tüm arabellekleri zaman uyumsuz olarak temizler ve arabelleğe alınan verilerin temel alınan cihaza yazılmasına neden olur.

(Devralındığı yer: Stream)
FlushAsync(CancellationToken)

Geçerli akış için arabelleği zaman uyumsuz olarak temizler ve arabelleğe alınan verilerin temel alınan cihaza yazılmasına neden olur.

(Devralındığı yer: PipeStream)
GetAccessControl()

Geçerli PipeStream nesnesi tarafından açıklanan kanal için erişim denetimi listesi (ACL) girdilerini kapsülleyen bir PipeSecurity nesnesi alır.

(Devralındığı yer: PipeStream)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetLifetimeService()
Geçersiz.

Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır.

(Devralındığı yer: MarshalByRefObject)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
InitializeHandle(SafePipeHandle, Boolean, Boolean)

Belirtilen SafePipeHandle nesnesinden bir PipeStream nesnesi başlatır.

(Devralındığı yer: PipeStream)
InitializeLifetimeService()
Geçersiz.

Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır.

(Devralındığı yer: MarshalByRefObject)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
MemberwiseClone(Boolean)

Geçerli MarshalByRefObject nesnesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: MarshalByRefObject)
ObjectInvariant()
Geçersiz.

Contractiçin destek sağlar.

(Devralındığı yer: Stream)
Read(Byte[], Int32, Int32)

Bir akıştan bayt bloğunu okur ve verileri belirtilen bir uzunlukta belirtilen konumdan başlayarak belirtilen arabelleğe yazar.

(Devralındığı yer: PipeStream)
Read(Span<Byte>)

Geçerli akıştan bir bayt dizisi okur, bunları bir bayt dizisine yazar ve okunan bayt sayısına göre akış içindeki konumu ilerletir.

(Devralındığı yer: PipeStream)
ReadAsync(Byte[], Int32, Int32)

Geçerli akıştan zaman uyumsuz olarak bir bayt dizisi okur ve okunan bayt sayısına göre akış içindeki konumu ilerletir.

(Devralındığı yer: Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Belirtilen sayıda bayt için belirtilen konumdan başlayarak geçerli akıştan bayt dizisine zaman uyumsuz olarak bir bayt dizisi okur, okunan bayt sayısına göre akıştaki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: PipeStream)
ReadAsync(Memory<Byte>, CancellationToken)

Geçerli akıştan zaman uyumsuz olarak bir bayt dizisi okur, bunları bir bayt bellek aralığına yazar, okunan bayt sayısına göre akıştaki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: PipeStream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Geçerli akıştan en az bayt sayısını okur ve okunan bayt sayısına göre akış içindeki konumu ilerletir.

(Devralındığı yer: Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Geçerli akıştan en az en az sayıda bayt zaman uyumsuz olarak okur, okunan bayt sayısına göre akıştaki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
ReadByte()

Borudan bayt okur.

(Devralındığı yer: PipeStream)
ReadExactly(Byte[], Int32, Int32)

Geçerli akıştan count bayt sayısını okur ve akış içindeki konumu ilerletir.

(Devralındığı yer: Stream)
ReadExactly(Span<Byte>)

Geçerli akıştan baytları okur ve buffer doldurulana kadar akıştaki konumu ilerletir.

(Devralındığı yer: Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Geçerli akıştan count bayt sayısını zaman uyumsuz olarak okur, akış içindeki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Geçerli akıştaki baytları zaman uyumsuz olarak okur, buffer doldurulana kadar akıştaki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
Seek(Int64, SeekOrigin)

Geçerli akışın geçerli konumunu belirtilen değere ayarlar.

(Devralındığı yer: PipeStream)
SetAccessControl(PipeSecurity)

bir PipeSecurity nesnesi tarafından belirtilen erişim denetimi listesi (ACL) girdilerini geçerli PipeStream nesnesi tarafından belirtilen kanala uygular.

(Devralındığı yer: PipeStream)
SetLength(Int64)

Geçerli akışın uzunluğunu belirtilen değere ayarlar.

(Devralındığı yer: PipeStream)
ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)
WaitForPipeDrain()

Kanalın diğer ucunun gönderilen tüm baytları okumasını bekler.

(Devralındığı yer: PipeStream)
Write(Byte[], Int32, Int32)

Arabellekten alınan verileri kullanarak geçerli akışa bir bayt bloğu yazar.

(Devralındığı yer: PipeStream)
Write(ReadOnlySpan<Byte>)

Geçerli akışa bir bayt dizisi yazar ve bu akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir.

(Devralındığı yer: PipeStream)
WriteAsync(Byte[], Int32, Int32)

Zaman uyumsuz olarak geçerli akışa bir bayt dizisi yazar ve bu akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir.

(Devralındığı yer: Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Belirli bir konumdan başlayan bayt dizisinden zaman uyumsuz olarak belirtilen sayıda bayt yazar, bu akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir ve iptal isteklerini izler.

(Devralındığı yer: PipeStream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Zaman uyumsuz olarak geçerli akışa bir bayt dizisi yazar, bu akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir ve iptal isteklerini izler.

(Devralındığı yer: PipeStream)
WriteByte(Byte)

Geçerli akışa bir bayt yazar.

(Devralındığı yer: PipeStream)

Uzantı Metotları

CopyToAsync(Stream, PipeWriter, CancellationToken)

Stream baytları zaman uyumsuz olarak okur ve bir iptal belirteci kullanarak belirtilen PipeWriteryazar.

GetAccessControl(PipeStream)

Kanal akışının güvenlik bilgilerini döndürür.

SetAccessControl(PipeStream, PipeSecurity)

Mevcut bir kanal akışının güvenlik özniteliklerini değiştirir.

ConfigureAwait(IAsyncDisposable, Boolean)

Zaman uyumsuz bir atılabilir öğeden döndürülen görevlerde awaits işleminin nasıl gerçekleştirileceğini yapılandırılır.

Şunlara uygulanır