NamedPipeClientStream 類別

定義

在命名管線周圍暴露 a Stream ,該管線同時支援同步與非同步的讀寫操作。

public ref class NamedPipeClientStream sealed : System::IO::Pipes::PipeStream
public sealed class NamedPipeClientStream : System.IO.Pipes.PipeStream
type NamedPipeClientStream = class
    inherit PipeStream
Public NotInheritable Class NamedPipeClientStream
Inherits PipeStream
繼承
NamedPipeClientStream
繼承
NamedPipeClientStream

範例

以下範例示範了一種使用命名管道,將字串從父程序傳送到同一台電腦上的子程序的方法。 此範例在父程序中建立一個 NamedPipeServerStream 物件。 物件 NamedPipeServerStreamPipeDirection 值為 Out。伺服器接著等待 NamedPipeClientStream 子程序中的物件連接到它。 在這個例子中,兩個程序都存在於同一台電腦上,且 NamedPipeClientStream 物件值為 PipeDirectionIn。 父程序接著將使用者提供的字串傳送給子程序。 這串字串會顯示在主控台上。

此範例為用戶端程序,連接伺服器程序。 完整程式碼範例,包括管道用戶端與伺服器的程式碼,請參閱 「如何:使用命名管道進行網路程序間通訊」。

using System;
using System.IO;
using System.IO.Pipes;

class PipeClient
{
    static void Main(string[] args)
    {
        using (NamedPipeClientStream pipeClient =
            new NamedPipeClientStream(".", "testpipe", PipeDirection.In))
        {

            // Connect to the pipe or wait until the pipe is available.
            Console.Write("Attempting to connect to pipe...");
            pipeClient.Connect();

            Console.WriteLine("Connected to pipe.");
            Console.WriteLine("There are currently {0} pipe server instances open.",
               pipeClient.NumberOfServerInstances);
            using (StreamReader sr = new StreamReader(pipeClient))
            {
                // Display the read text to the console
                string temp;
                while ((temp = sr.ReadLine()) != null)
                {
                    Console.WriteLine("Received from server: {0}", temp);
                }
            }
        }
        Console.Write("Press Enter to continue...");
        Console.ReadLine();
    }
}
Imports System.IO
Imports System.IO.Pipes
Imports System.Security.Principal

Class PipeClient

    Shared Sub Main(ByVal args As String())

        Dim pipeClient As New NamedPipeClientStream("localhost", _
                    "testpipe", PipeDirection.In, PipeOptions.None)

        ' Connect to the pipe or wait until the pipe is available.
        Console.WriteLine("Attempting to connect to the pipe...")
        pipeClient.Connect()

        Console.WriteLine("Connect to the pipe.")
        Console.WriteLine("There are currently {0} pipe server instances open.", _
                          pipeClient.NumberOfServerInstances)

        Dim sr As New StreamReader(pipeClient)
        Dim temp As String

        temp = sr.ReadLine()
        While Not temp Is Nothing
            Console.WriteLine("Received from server: {0}", temp)
            temp = sr.ReadLine()
        End While
        Console.Write("Press Enter to continue...")
        Console.ReadLine()
    End Sub
End Class

備註

命名管線提供單向或雙工管線,用於管線伺服器與一個或多個管線用戶端之間的通訊。 命名管線可用於本地或網路上的程序間通訊。 單一管線名稱可以被多個 NamedPipeClientStream 物件共用。

任何程序都可以作為命名的管道伺服器或客戶端,或兩者兼具。

建構函式

名稱 Description
NamedPipeClientStream(PipeDirection, Boolean, Boolean, SafePipeHandle)
已淘汰.

初始化該類別的新實例 NamedPipeClientStream ,針對指定的管線柄並以指定的管線方向初始化。

NamedPipeClientStream(PipeDirection, Boolean, SafePipeHandle)

在命名管線周圍暴露 a Stream ,該管線同時支援同步與非同步的讀寫操作。

NamedPipeClientStream(String, String, PipeAccessRights, PipeOptions, TokenImpersonationLevel, HandleInheritability)

初始化一個新實例, NamedPipeClientStream 使用指定的管線名稱與伺服器名稱,以及管線選項、安全模擬層級及可繼承模式。

NamedPipeClientStream(String, String, PipeDirection, PipeOptions, TokenImpersonationLevel, HandleInheritability)

初始化一個新的類別實例 NamedPipeClientStream ,包含指定的管線名稱與伺服器名稱,以及管線方向、管線選項、安全模擬層級及繼承模式。

NamedPipeClientStream(String, String, PipeDirection, PipeOptions, TokenImpersonationLevel)

初始化一個以指定的管線與伺服器名稱,以及管線方向、管線選項及安全模擬層級的新類別實例 NamedPipeClientStream

NamedPipeClientStream(String, String, PipeDirection, PipeOptions)

初始化一個新的類別實例 NamedPipeClientStream ,並以指定的管線名稱與伺服器名稱,以及管線方向與管線選項。

NamedPipeClientStream(String, String, PipeDirection)

初始化一個以指定的管線名稱、伺服器名稱及管線方向的新類別實例 NamedPipeClientStream

NamedPipeClientStream(String, String)

初始化一個以指定管道名稱和伺服器名稱的新類別實例 NamedPipeClientStream

NamedPipeClientStream(String)

初始化一個以指定管線名稱的新類別實例 NamedPipeClientStream

屬性

名稱 Description
CanRead

會取得一個值,表示目前串流是否支援讀取操作。

(繼承來源 PipeStream)
CanSeek

會獲得一個值,表示目前串流是否支援尋道操作。

(繼承來源 PipeStream)
CanTimeout

取得值,這個值會判斷目前的數據流是否可以逾時。

(繼承來源 Stream)
CanWrite

會獲得一個值,表示目前串流是否支援寫入操作。

(繼承來源 PipeStream)
InBufferSize

取得管線入站緩衝區的大小(以位元組為單位)。

(繼承來源 PipeStream)
IsAsync

會取得一個值,表示物件是 PipeStream 非同步或同步開啟。

(繼承來源 PipeStream)
IsConnected

取得或設定一個值,表示物件是否 PipeStream 連通。

(繼承來源 PipeStream)
IsHandleExposed

會取得一個值,表示物件的 handle PipeStream 是否被暴露。

(繼承來源 PipeStream)
IsMessageComplete

會取得一個值,表示最近一次讀取操作回傳的訊息中是否有更多資料。

(繼承來源 PipeStream)
Length

取得串流長度,以位元組為單位。

(繼承來源 PipeStream)
NumberOfServerInstances

會取得共用相同管道名稱的伺服器實例數量。

OutBufferSize

取得管線出站緩衝區的大小(以位元組為單位)。

(繼承來源 PipeStream)
Position

取得或設定當前串流的當前位置。

(繼承來源 PipeStream)
ReadMode

取得或設定物件的 PipeStream 讀取模式。

(繼承來源 PipeStream)
ReadTimeout

會取得或設定一個以毫秒為單位的值,決定串流在逾時前嘗試讀取的時間長短。

(繼承來源 Stream)
SafePipeHandle

會拿到管子本地端的安全把手,該管子是當前 PipeStream 物體所包覆的。

(繼承來源 PipeStream)
TransmissionMode

取得由現有管線支援的管道傳輸模式。

(繼承來源 PipeStream)
WriteTimeout

取得或設定一個毫秒級的值,決定串流在逾時前嘗試寫入的時間長短。

(繼承來源 Stream)

方法

名稱 Description
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

開始異步讀取作業。

(繼承來源 PipeStream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

開始異步寫入作業。

(繼承來源 PipeStream)
CheckPipePropertyOperations()

驗證管線是否處於正確狀態,可用於取得或設定屬性。

(繼承來源 PipeStream)
CheckReadOperations()

驗證管線在讀取操作時處於連通狀態。

(繼承來源 PipeStream)
CheckWriteOperations()

驗證管線在寫入操作時是否處於連接狀態。

(繼承來源 PipeStream)
Close()

關閉目前串流並釋放與目前串流相關的資源(如套接字和檔案柄)。 與其呼叫此方法,不如確保溪流已被妥善處理。

(繼承來源 Stream)
Connect()

連接一個等待的伺服器,擁有無限的逾時值。

Connect(Int32)

在指定的逾時期內連接等待中的伺服器。

Connect(TimeSpan)

在指定的逾時期間內連接等待中的伺服器。

ConnectAsync()

非同步連線到等待的伺服器,且有無限的逾時時間。

ConnectAsync(CancellationToken)

非同步連接等待中的伺服器並監控取消請求。

ConnectAsync(Int32, CancellationToken)

在指定的逾時期內非同步連接等待的伺服器,並監控取消請求。

ConnectAsync(Int32)

在指定的逾時期間內非同步連接等待中的伺服器。

ConnectAsync(TimeSpan, CancellationToken)

在指定的逾時期內非同步連接等待的伺服器,並監控取消請求。

CopyTo(Stream, Int32)

從目前串流讀取位元組,並依指定緩衝區大小寫入另一串流。 兩個串流的位置依複製的位元組數前進。

(繼承來源 Stream)
CopyTo(Stream)

從目前串流讀取位元組,然後寫入另一條串流。 兩個串流的位置依複製的位元組數前進。

(繼承來源 Stream)
CopyToAsync(Stream, CancellationToken)

使用指定的取消標記,以異步方式從目前數據流讀取位元組,並將其寫入另一個數據流。 兩個串流的位置依複製的位元組數前進。

(繼承來源 Stream)
CopyToAsync(Stream, Int32, CancellationToken)

非同步地從目前串流讀取位元組,並使用指定的緩衝區大小與取消標記寫入另一串流。 兩個串流的位置依複製的位元組數前進。

(繼承來源 Stream)
CopyToAsync(Stream, Int32)

非同步讀取目前串流的位元組,並以指定的緩衝區大小寫入另一串流。 兩個串流的位置依複製的位元組數前進。

(繼承來源 Stream)
CopyToAsync(Stream)

非同步地從目前串流讀取位元組,然後寫入另一條串流。 兩個串流的位置依複製的位元組數前進。

(繼承來源 Stream)
CreateObjRef(Type)

建立一個物件,包含產生代理伺服器所需的所有相關資訊,用於與遠端物件通訊。

(繼承來源 MarshalByRefObject)
CreateWaitHandle()
已淘汰.
已淘汰.
已淘汰.

分配一個 WaitHandle 物件。

(繼承來源 Stream)
Dispose()

釋放 Stream所使用的所有資源。

(繼承來源 Stream)
Dispose(Boolean)

釋放類別使用的 PipeStream 非管理資源,並可選擇性地釋放受管理資源。

(繼承來源 PipeStream)
DisposeAsync()

非同步釋放 Stream.

(繼承來源 Stream)
EndRead(IAsyncResult)

結束暫止的異步讀取要求。

(繼承來源 PipeStream)
EndWrite(IAsyncResult)

結束一個待處理的非同步寫入請求。

(繼承來源 PipeStream)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Finalize()

在實例被垃圾回收前,釋放未管理的資源並執行其他清理操作 NamedPipeClientStream

Flush()

清除當前串流的緩衝區,並使任何緩衝資料寫入底層裝置。

(繼承來源 PipeStream)
FlushAsync()

非同步清除此串流的所有緩衝區,並使任何緩衝資料寫入底層裝置。

(繼承來源 Stream)
FlushAsync(CancellationToken)

非同步清除當前串流的緩衝區,並使任何緩衝資料寫入底層裝置。

(繼承來源 PipeStream)
GetAccessControl()

取得 PipeSecurity 一個物件,封裝了目前物件所描述 PipeStream 管線的存取控制清單(ACL)條目。

(繼承來源 PipeStream)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetLifetimeService()
已淘汰.

擷取控制這個實例存留期原則的目前存留期服務物件。

(繼承來源 MarshalByRefObject)
GetType()

取得目前實例的 Type

(繼承來源 Object)
InitializeHandle(SafePipeHandle, Boolean, Boolean)

從指定的PipeStream物件初始化一個SafePipeHandle物件。

(繼承來源 PipeStream)
InitializeLifetimeService()
已淘汰.

取得存留期服務物件,以控制這個實例的存留期原則。

(繼承來源 MarshalByRefObject)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
MemberwiseClone(Boolean)

建立目前 MarshalByRefObject 對象的淺層複本。

(繼承來源 MarshalByRefObject)
ObjectInvariant()
已淘汰.

提供 。Contract

(繼承來源 Stream)
Read(Byte[], Int32, Int32)

從串流讀取一個位元組區塊,並將資料寫入指定緩衝區,從指定位置開始,長度指定。

(繼承來源 PipeStream)
Read(Span<Byte>)

從目前串流讀取一串位元組,將它們寫入位元組陣列,並依讀取位元組數推進串流中的位置。

(繼承來源 PipeStream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

非同步地從目前串流讀取一串位元組到指定位置的位元組陣列,並以指定位元組數為基礎,並依讀取位元組數前進,並監控取消請求。

(繼承來源 PipeStream)
ReadAsync(Byte[], Int32, Int32)

非同步讀取當前串流的位元組序列,並依讀取位元組數推進串流中的位置。

(繼承來源 Stream)
ReadAsync(Memory<Byte>, CancellationToken)

非同步從目前串流讀取一串位元組,將其寫入位元組記憶體範圍,依讀取位元組數前進串流中的位置,並監控取消請求。

(繼承來源 PipeStream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

從目前數據流讀取至少一個字節數目,並將數據流中的位置依讀取的位元組數目往前移。

(繼承來源 Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

以異步方式從目前數據流讀取至少一個字節數目、依讀取的位元組數目將數據流中的位置往前移,並監視取消要求。

(繼承來源 Stream)
ReadByte()

讀取一個位元組。

(繼承來源 PipeStream)
ReadExactly(Byte[], Int32, Int32)

從目前串流讀取 count 位元組數,並推進串流中的位置。

(繼承來源 Stream)
ReadExactly(Span<Byte>)

從目前串流讀取位元組,並推進串流中的位置直到填 buffer 滿。

(繼承來源 Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

非同步讀取 count 當前串流的位元組數量,推進串流中的位置,並監控取消請求。

(繼承來源 Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

非同步讀取目前串流的位元組,推進串流中的位置直到填 buffer 滿,並監控取消請求。

(繼承來源 Stream)
Seek(Int64, SeekOrigin)

將當前串流的當前位置設定為指定的值。

(繼承來源 PipeStream)
SetAccessControl(PipeSecurity)

將物件指定的 PipeSecurity 存取控制清單(ACL)條目套用到目前 PipeStream 物件指定的管線上。

(繼承來源 PipeStream)
SetLength(Int64)

將目前串流的長度設定為指定的值。

(繼承來源 PipeStream)
ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)
WaitForPipeDrain()

等待管線另一端讀取所有已發送的位元組。

(繼承來源 PipeStream)
Write(Byte[], Int32, Int32)

利用緩衝區的資料寫入一個位元組區塊到目前的串流。

(繼承來源 PipeStream)
Write(ReadOnlySpan<Byte>)

將一串位元組寫入目前串流,並依照寫入的位元組數將目前位置往前推進。

(繼承來源 PipeStream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

非同步從指定位置的位元組陣列寫入指定數量的位元組,依照寫入位元組數將該串流中當前位置推進,並監控取消請求。

(繼承來源 PipeStream)
WriteAsync(Byte[], Int32, Int32)

非同步地將一串位元組寫入目前串流,並依照寫入的位元組數將該串流中的當前位置往前推進。

(繼承來源 Stream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

非同步地將一串位元組寫入目前串流,依照寫入位元組數將該串流中的當前位置前進,並監控取消請求。

(繼承來源 PipeStream)
WriteByte(Byte)

會寫入一個位元組到目前的串流。

(繼承來源 PipeStream)

擴充方法

名稱 Description
ConfigureAwait(IAsyncDisposable, Boolean)

設定如何執行從異步可處置專案傳回的工作等候。

CopyToAsync(Stream, PipeWriter, CancellationToken)

非同步讀取 的 Stream 位元組並使用消去標記寫入指定的 PipeWriter

GetAccessControl(PipeStream)

回傳管線流的安全資訊。

SetAccessControl(PipeStream, PipeSecurity)

變更現有管線串流的安全屬性。

適用於