NetworkStream 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供基礎資料流以進行網路存取。
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
- 繼承
- 繼承
- 實作
範例
下列程式碼範例示範如何從連線 Stream Socket 建立 , NetworkStream 並執行基本的同步封鎖 I/O。
// Examples for constructors that do not specify file permission.
// Create the NetworkStream for communicating with the remote host.
NetworkStream^ myNetworkStream;
if ( networkStreamOwnsSocket )
{
myNetworkStream = gcnew NetworkStream( mySocket,true );
}
else
{
myNetworkStream = gcnew NetworkStream( mySocket );
}
// Examples for constructors that do not specify file permission.
// Create the NetworkStream for communicating with the remote host.
NetworkStream myNetworkStream;
if (networkStreamOwnsSocket){
myNetworkStream = new NetworkStream(mySocket, true);
}
else{
myNetworkStream = new NetworkStream(mySocket);
}
' Examples for constructors that do not specify file permission.
' Create the NetworkStream for communicating with the remote host.
Dim myNetworkStream As NetworkStream
If networkStreamOwnsSocket Then
myNetworkStream = New NetworkStream(mySocket, True)
Else
myNetworkStream = New NetworkStream(mySocket)
End If
備註
類別 NetworkStream 提供在封鎖模式中透過 Stream 通訊端傳送和接收資料的方法。 如需封鎖與非封鎖 Socket 的詳細資訊,請參閱 使用非同步用戶端通訊端。 您可以使用 類別 NetworkStream 進行同步和非同步資料傳輸。 如需同步和非同步通訊的詳細資訊,請參閱 通訊端。
若要建立 NetworkStream ,您必須提供連接的 Socket 。 您也可以指定 所提供 Socket 的許可權 FileAccess NetworkStream 。 根據預設,關閉 NetworkStream 不會關閉提供的 Socket 。 如果您想要 NetworkStream 擁有關閉所提供 Socket 的許可權,您必須指定 true
參數的值 ownsSocket
。
使用 Write 和 Read 方法進行簡單的單一線程同步封鎖 I/O。 如果您想要使用個別執行緒來處理 I/O,請考慮使用 BeginWrite 和 EndWrite 方法,或 BeginRead 和 EndRead 方法來進行通訊。
NetworkStream不支援隨機存取網路資料流程。 屬性的值,這個值 CanSeek 表示資料流程是否支援搜尋,一律 false
為 ;讀取 Position 屬性、讀取 Length 屬性,或呼叫 Seek 方法會擲回 NotSupportedException 。
讀取和寫入作業可以在類別的 NetworkStream 實例上同時執行,而不需要同步處理。 只要寫入作業有一個唯一線程,且讀取作業有一個唯一線程,讀取和寫入執行緒之間就不會有交叉干擾,而且不需要同步處理。
建構函式
NetworkStream(Socket) |
為指定的 NetworkStream 建立 Socket 類別的新執行個體。 |
NetworkStream(Socket, Boolean) |
使用指定的 NetworkStream 擁有權,為指定的 Socket 初始化 Socket 類別的新執行個體。 |
NetworkStream(Socket, FileAccess) |
使用指定的存取權限,建立指定 NetworkStream 的 Socket 類別新執行個體。 |
NetworkStream(Socket, FileAccess, Boolean) |
使用指定的存取權限和指定的 NetworkStream 擁有權,建立指定 Socket 的 Socket 類別新執行個體。 |
屬性
CanRead |
取得值,指出 NetworkStream 是否支援讀取。 |
CanSeek |
取得值,指出資料流是否支援搜尋。 這個屬性目前不支援。 這個屬性永遠會傳回 |
CanTimeout |
指出逾時屬性是否適用於 NetworkStream。 |
CanTimeout |
取得值,該值判斷目前的資料流是否可以逾時。 (繼承來源 Stream) |
CanWrite |
取得值,指出 NetworkStream 是否支援寫入。 |
DataAvailable |
取得值,指出 NetworkStream 上的資料是否可供讀取。 |
Length |
取得資料流上可以使用之資料的長度。 這個屬性目前不受支援,而且永遠會擲回 NotSupportedException。 |
Position |
取得或設定資料流中目前的位置。 這個屬性目前不受支援,而且永遠會擲回 NotSupportedException。 |
Readable |
取得或設定值,指出是否可以讀取 NetworkStream。 |
ReadTimeout |
取得或設定讀取作業封鎖等待資料的時間長度。 |
ReadTimeout |
取得或設定值 (以毫秒為單位),該值決定資料流在逾時前將嘗試讀取多長時間。 (繼承來源 Stream) |
Socket |
取得基礎 Socket。 |
Writeable |
取得值,指出 NetworkStream 是否可寫入。 |
WriteTimeout |
取得或設定寫入作業封鎖等待資料的時間長度。 |
WriteTimeout |
取得或設定毫秒值,該值決定在逾時前資料流將嘗試寫入多長時間。 (繼承來源 Stream) |
方法
明確介面實作
IDisposable.Dispose() |
此 API 支援此產品基礎結構,但無法直接用於程式碼之中。 釋放 NetworkStream 所使用的所有資源。 |
擴充方法
ConfigureAwait(IAsyncDisposable, Boolean) |
設定如何執行從非同步可處置項目傳回的工作 await。 |