NetworkStream.Read メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| 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
パラメーター
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) を返します。
例外
buffer は nullです。
offset が 0 未満です。
-または-
offset が bufferの長さを超えています。
-または-
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 エラー コード ドキュメントを参照してください。