次の方法で共有


NetworkStream.Read メソッド

定義

オーバーロード

Read(Span<Byte>)

NetworkStream からデータを読み取り、メモリ内のバイトのスパンに格納します。

Read(Byte[], Int32, Int32)

NetworkStream からデータを読み取り、バイト配列に格納します。

Read(Span<Byte>)

ソース:
NetworkStream.cs
ソース:
NetworkStream.cs
ソース:
NetworkStream.cs

NetworkStream からデータを読み取り、メモリ内のバイトのスパンに格納します。

public:
 override int Read(Span<System::Byte> buffer);
public override int Read (Span<byte> buffer);
override this.Read : Span<byte> -> int
Public Overrides Function Read (buffer As Span(Of Byte)) As Integer

パラメーター

buffer
Span<Byte>

NetworkStream から読み取られたデータを格納するメモリの領域。

戻り値

NetworkStream から読み取るバイト数。

例外

NetworkStream では読み取りがサポートされていません。

ソケットへのアクセス中にエラーが発生しました。

- または -

ネットワークからの読み取りでエラーが発生しました。

NetworkStream が閉じています。

注釈

このメソッドは、 パラメーターで使用できる量のデータを buffer 読み取り、正常に読み取られたバイト数を返します。

注意

プロパティを呼び出CanReadして、 NetworkStream が読み取り可能かどうかを確認します。 読み取り不可能な から NetworkStream 読み取ろうとすると、 が InvalidOperationException表示されます。

注意

IOException受け取った場合は、 プロパティをInnerExceptionチェックして、 SocketExceptionが原因かどうかを判断します。 その場合は、 プロパティを ErrorCode 使用して特定のエラー コードを取得し、エラーの詳細な説明については 、Windows ソケット バージョン 2 API エラー コード のドキュメントを参照してください。

適用対象

Read(Byte[], Int32, Int32)

ソース:
NetworkStream.cs
ソース:
NetworkStream.cs
ソース:
NetworkStream.cs

NetworkStream からデータを読み取り、バイト配列に格納します。

public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int size);
public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public override int Read (byte[] buffer, int offset, int size);
public override int Read (byte[] buffer, int offset, int count);
override this.Read : byte[] * int * int -> int
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, size As Integer) As Integer
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer

パラメーター

buffer
Byte[]

Byte 型の配列。NetworkStream から読み取られたデータを格納するメモリ内の場所です。

offset
Int32

データの格納を開始する buffer 内の場所。

sizecount
Int32

NetworkStream から読み取るバイト数。

戻り値

NetworkStream から読み取るバイト数。

例外

buffernullです。

offset が 0 未満です。

または

offsetbuffer の長さを超えています。

または

size が 0 未満です。

または

size が、buffer から offset を引いた長さを超えています。

NetworkStream では読み取りがサポートされていません。

ソケットへのアクセス中にエラーが発生しました。

- または -

ネットワークからの読み取りでエラーが発生しました。

NetworkStream が閉じています。

次のコード例では、 を使用 DataAvailable して、データを読み取ることができるかどうかを判断します。 データが使用可能な場合は、 から NetworkStreamを読み取ります。

byte[] myReadBuffer = new byte[1024];
StringBuilder myCompleteMessage = new StringBuilder();
int numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);

// Read all the data until the end of stream has been reached.
// The incoming message may be larger than the buffer size.
while (numberOfBytesRead > 0)
{
    myCompleteMessage.Append(Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
    numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);
}

// Print out the received message to the console.
Console.WriteLine("You received the following message : " + myCompleteMessage);

注釈

このメソッドは にデータを読み取 buffer り、正常に読み取られたバイト数を返します。 この操作では Read 、 パラメーターで指定されたバイト数まで、使用可能な量のデータを size 読み取ります。

注意

プロパティを呼び出CanReadして、 NetworkStream が読み取り可能かどうかを確認します。 読み取り不可能な から NetworkStream 読み取ろうとすると、 が InvalidOperationException表示されます。

注意

IOException受け取った場合は、 プロパティをInnerExceptionチェックして、 SocketExceptionが原因かどうかを判断します。 その場合は、 プロパティを ErrorCode 使用して特定のエラー コードを取得し、エラーの詳細な説明については 、Windows ソケット バージョン 2 API エラー コード のドキュメントを参照してください。

こちらもご覧ください

適用対象