共用方式為


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 類別進行同步和異步數據傳輸。 如需同步和異步通訊的詳細資訊,請參閱 Sockets

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

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

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

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

建構函式

NetworkStream(Socket)

為指定的 Socket建立 NetworkStream 類別的新實例。

NetworkStream(Socket, Boolean)

使用指定的 Socket 擁有權,為指定的 Socket 初始化 NetworkStream 類別的新實例。

NetworkStream(Socket, FileAccess)

使用指定的訪問許可權,為指定的 Socket 建立 NetworkStream 類別的新實例。

NetworkStream(Socket, FileAccess, Boolean)

使用指定的訪問許可權和指定的 Socket 擁有權,為指定的 Socket 建立 NetworkStream 類別的新實例。

屬性

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所使用的 Unmanaged 資源。

(繼承來源 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()
已淘汰.

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

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

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

適用於

另請參閱