NetworkStream 類別

定義

提供基礎資料流以進行網路存取。

public ref class NetworkStream : System::IO::Stream
public class NetworkStream : System.IO.Stream
type NetworkStream = class
    inherit Stream
type NetworkStream = class
    inherit Stream
    interface IDisposable
Public Class NetworkStream
Inherits Stream
繼承
NetworkStream
繼承
實作

備註

類別 NetworkStream 提供在封鎖模式中透過 Stream 套接字傳送和接收數據的方法。 如需封鎖與非封鎖 Socket的詳細資訊,請參閱 使用異步用戶端套接字。 您可以使用 類別 NetworkStream 進行同步和異步數據傳輸。 如需同步和異步通訊的詳細資訊,請參閱 套接字

若要建立 NetworkStream,您必須提供連線的 Socket。 您也可以指定 對NetworkStream所提供 Socket擁有的許可權FileAccess。 根據預設,關閉 NetworkStream 不會關閉提供的 Socket。 如果您想要 NetworkStream 擁有關閉所提供 Socket之 的許可權,您必須指定 true 參數的值 ownsSocket

Write針對簡單的單個線程同步封鎖 I/O,請使用 和 Read 方法。 如果您要以異步方式處理 I/O,請考慮使用 TaskValueTask型方法和 ReadAsyncWriteAsync

NetworkStream不支援隨機存取網路數據流。 屬性的值,這個值 CanSeek 表示數據流是否支援搜尋,一律 false為 ;讀取 Position 屬性、讀取 Length 屬性,或呼叫 Seek 方法會擲回 NotSupportedException

讀取和寫入作業可以在類別的實例上同時執行, NetworkStream 而不需要同步處理。 只要寫入作業有一個唯一線程,而且讀取作業有一個唯一線程,讀取和寫入線程之間就不會有交叉干擾,而且不需要同步處理。

建構函式

NetworkStream(Socket)

為指定的 NetworkStream 建立 Socket 類別的新執行個體。

NetworkStream(Socket, Boolean)

使用指定的 NetworkStream 擁有權,為指定的 Socket 初始化 Socket 類別的新執行個體。

NetworkStream(Socket, FileAccess)

使用指定的存取權限,建立指定 NetworkStreamSocket 類別新執行個體。

NetworkStream(Socket, FileAccess, Boolean)

使用指定的存取權限和指定的 NetworkStream 擁有權,建立指定 SocketSocket 類別新執行個體。

屬性

CanRead

取得值,指出 NetworkStream 是否支援讀取。

CanSeek

取得值,指出資料流是否支援搜尋。 這個屬性目前不支援。 這個屬性永遠會傳回 false

CanTimeout

指出逾時屬性是否適用於 NetworkStream

CanTimeout

取得值,該值判斷目前的資料流是否可以逾時。

(繼承來源 Stream)
CanWrite

取得值,指出 NetworkStream 是否支援寫入。

DataAvailable

取得值,這個值表示 是否可在 上 NetworkStream 立即讀取數據。

Length

取得資料流上可以使用之資料的長度。 這個屬性目前不受支援,而且永遠會擲回 NotSupportedException

Position

取得或設定資料流中目前的位置。 這個屬性目前不受支援,而且永遠會擲回 NotSupportedException

Readable

取得或設定值,指出是否可以讀取 NetworkStream

ReadTimeout

取得或設定讀取作業封鎖等待資料的時間長度。

ReadTimeout

取得或設定值 (以毫秒為單位),該值決定資料流在逾時前將嘗試讀取多長時間。

(繼承來源 Stream)
Socket

取得基礎 Socket

Writeable

取得值,指出 NetworkStream 是否可寫入。

WriteTimeout

取得或設定寫入作業封鎖等待資料的時間長度。

WriteTimeout

取得或設定毫秒值,該值決定在逾時前資料流將嘗試寫入多長時間。

(繼承來源 Stream)

方法

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

開始從 NetworkStream 進行非同步讀取。

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

開始非同步的讀取作業。 (請考慮用 ReadAsync(Byte[], Int32, Int32) 替代。)

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

開始非同步寫入資料流。

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

開始非同步的寫入作業。 (請考慮用 WriteAsync(Byte[], Int32, Int32) 替代。)

(繼承來源 Stream)
Close()

關閉 NetworkStream

Close()

關閉目前資料流和釋放與目前資料流相關聯的任何資源 (例如通訊端和檔案控制代碼)。 請確定正確地處置資料流,而非呼叫這個方法。

(繼承來源 Stream)
Close(Int32)

在等待了指定的時間以允許傳送資料後,關閉 NetworkStream

Close(TimeSpan)

NetworkStream 等候指定的時間量以允許傳送資料之後關閉 。

CopyTo(Stream)

從目前資料流讀取位元組,並將其寫入另一個資料流中。 這兩個數據流位置都是由複製的位元元組數目進階。

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

使用指定的緩衝區大小,從目前資料流讀取所有位元組,並將其寫入另一個資料流中。 這兩個數據流位置都是由複製的位元元組數目進階。

(繼承來源 Stream)
CopyToAsync(Stream)

以非同步的方式從目前資料流讀取所有位元組,並將其寫入另一個資料流中。 這兩個數據流位置都是由複製的位元元組數目進階。

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

使用指定的取消權杖,以非同步的方式從目前資料流讀取位元組,並將其寫入另一個資料流。 這兩個數據流位置都是由複製的位元元組數目進階。

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

使用指定的緩衝區大小,以非同步的方式從目前資料流讀取所有位元組,並將其寫入另一個資料流中。 這兩個數據流位置都是由複製的位元元組數目進階。

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

使用指定的緩衝區大小和取消語彙基元,以非同步的方式從目前資料流讀取位元組,並將其寫入另一個資料流。 這兩個數據流位置都是由複製的位元元組數目進階。

(繼承來源 Stream)
CreateObjRef(Type)

建立包含所有相關資訊的物件,這些資訊是產生用來與遠端物件通訊的所需 Proxy。

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

配置 WaitHandle 物件。

(繼承來源 Stream)
Dispose()

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

(繼承來源 Stream)
Dispose(Boolean)

釋放 NetworkStream 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

DisposeAsync()

以非同步方式釋放 Stream 使用的不受控資源。

(繼承來源 Stream)
EndRead(IAsyncResult)

處理非同步讀取的結束。

EndRead(IAsyncResult)

等候暫止的非同步讀取完成。 (請考慮用 ReadAsync(Byte[], Int32, Int32) 替代。)

(繼承來源 Stream)
EndWrite(IAsyncResult)

處理非同步寫入的結束。

EndWrite(IAsyncResult)

結束非同步的寫入作業。 (請考慮用 WriteAsync(Byte[], Int32, Int32) 替代。)

(繼承來源 Stream)
Equals(Object)

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

(繼承來源 Object)
Finalize()

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

Flush()

清除資料流的資料。 這個方法是保留供日後使用。

FlushAsync()

以非同步的方式清除這個資料流的所有緩衝區,並造成所有緩衝資料都寫入基礎裝置。

(繼承來源 Stream)
FlushAsync(CancellationToken)

以非同步作業的方式,清除資料流的資料。

FlushAsync(CancellationToken)

以非同步的方式清除這個資料流的所有緩衝區,造成所有緩衝資料都寫入基礎裝置,並且監視取消要求。

(繼承來源 Stream)
GetHashCode()

做為預設雜湊函式。

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

擷取控制這個執行個體存留期 (Lifetime) 原則的目前存留期服務物件。

(繼承來源 MarshalByRefObject)
GetType()

取得目前執行個體的 Type

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

取得存留期服務物件,以控制這個執行個體的存留期原則。

(繼承來源 MarshalByRefObject)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
MemberwiseClone(Boolean)

建立目前 MarshalByRefObject 物件的淺層複本。

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

提供 Contract 的支援。

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

NetworkStream 讀取資料,並將其儲存於位元組陣列。

Read(Span<Byte>)

NetworkStream 讀取資料,並將其儲存於記憶體中的位元組範圍。

Read(Span<Byte>)

當在衍生類別中覆寫時,自目前資料流讀取一連串的位元組,並依所讀取的位元組數目進階資料流中的位置。

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

以非同步的方式從目前的資料流讀取位元組序列,並依讀取的位元組數將資料流中的位置往前移。

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

以非同步作業從 NetworkStream 讀取資料,並將其儲存至指定的位元組陣列範圍。

ReadAsync(Byte[], Int32, Int32, CancellationToken)

以非同步的方式從目前資料流讀取一連串的位元組、依所讀取的位元組數目進階資料流中的位置,以及監視取消要求。

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

以非同步作業從 NetworkStream 讀取資料,並將其儲存於位元組記憶體範圍。

ReadAsync(Memory<Byte>, CancellationToken)

以非同步的方式從目前資料流讀取一連串的位元組、依所讀取的位元組數目進階資料流中的位置,以及監視取消要求。

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

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

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

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

(繼承來源 Stream)
ReadByte()

NetworkStream 讀取一個位元組,並將資料流的位置推進一個位元組;如果在資料流末端,則傳回 -1。

ReadByte()

從資料流讀取一個位元組,並將資料流的位置推進一個位元組;如果在資料流末端,則傳回 -1。

(繼承來源 Stream)
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)

設定資料流的目前位置為指定的數值。 這個方法目前不受支援,而且永遠會擲回 NotSupportedException

SetLength(Int64)

設定資料流的長度。 這個方法永遠會擲回 NotSupportedException

ToString()

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

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

將資料從指定的位元組陣列範圍寫入至 NetworkStream

Write(ReadOnlySpan<Byte>)

從唯讀位元組範圍將資料 NetworkStream 寫入 。

Write(ReadOnlySpan<Byte>)

在衍生類別中覆寫時,將一連串的位元組寫入目前的資料流,並且由這個資料流中目前的位置前移寫入的位元組數目。

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

以非同步的方式將位元組序列寫入至目前的資料流,並依寫入的位元組數將資料流中目前的位置往前移。

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

以非同步作業將資料從指定的位元組陣列範圍寫入至 NetworkStream

WriteAsync(Byte[], Int32, Int32, CancellationToken)

以非同步的方式將一連串的位元組寫入目前的資料流,由這個資料流中目前的位置前移寫入的位元組數目,並且監視取消要求。

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

以非同步作業將資料從唯讀記憶體位元組記憶體範圍寫入至 NetworkStream

WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

以非同步的方式將一連串的位元組寫入目前的資料流,由這個資料流中目前的位置前移寫入的位元組數目,並且監視取消要求。

(繼承來源 Stream)
WriteByte(Byte)

將位元組寫入至 NetworkStream 的目前位置,並依一個位元組將資料流中位置往前移。

WriteByte(Byte)

寫入一個位元組至資料流的目前位置,並將資料流位置推進一個位元組。

(繼承來源 Stream)

明確介面實作

IDisposable.Dispose()

此 API 支援此產品基礎結構,但無法直接用於程式碼之中。

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

擴充方法

CopyToAsync(Stream, PipeWriter, CancellationToken)

使用取消語彙基元,以非同步的方式從 Stream 讀取位元組,並將其寫入指定的 PipeWriter

ConfigureAwait(IAsyncDisposable, Boolean)

設定如何執行從非同步可處置項目傳回的工作 await。

適用於

另請參閱