NetworkStream.Read メソッド

定義

オーバーロード

名前 説明
Read(Span<Byte>)

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

Read(Byte[], Int32, Int32)

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

Read(Span<Byte>)

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から読み取られたデータを格納するメモリの領域。

返品

バッファーに読み込まれるバイト数の合計 (ゼロ (0) からバッファーの長さ)。 このメソッドは、0 バイトが要求された場合、またはピア ソケットが正常なシャットダウンを実行したために使用可能なバイトがなくなった場合にのみ、ゼロ (0) を返します。

例外

NetworkStreamは読み取りをサポートしていません。

ソケットにアクセスするときにエラーが発生しました。

-または-

ネットワークからの読み取りに失敗しました。

NetworkStream は閉じられます。

注釈

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

Note

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

Note

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

適用対象

Read(Byte[], Int32, Int32)

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

public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int size);
public override int Read(byte[] buffer, int offset, int size);
override this.Read : byte[] * int * int -> int
abstract member 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

パラメーター

buffer
Byte[]

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

offset
Int32

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

size
Int32

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

返品

ゼロ (0) から要求されたカウントまでのバッファーに読み取られた合計バイト数。 このメソッドは、0 バイトが要求された場合、またはピア ソケットが正常なシャットダウンを実行したために使用可能なバイトがなくなった場合にのみ、ゼロ (0) を返します。

例外

buffernullです。

offset が 0 未満です。

-または-

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

-または-

size が 0 未満です。

-または-

size は、 buffer - offsetの長さを超えています。

NetworkStreamは読み取りをサポートしていません。

ソケットにアクセスするときにエラーが発生しました。

-または-

ネットワークからの読み取りに失敗しました。

NetworkStream は閉じられます。

次のコード例では、 NetworkStream からバッファーにデータを読み取ります。 データが使用可能な場合は、ストリームの末尾に達するまで読み取りが続行され、受信したデータが StringBuilderに追加されます。

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操作は、count パラメーターで指定されたバイト数まで、使用可能な量のデータを読み取ります。

Note

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

Note

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

こちらもご覧ください

適用対象