NetworkStream.Read 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
| 名称 | 说明 |
|---|---|
| Read(Span<Byte>) |
从中 NetworkStream 读取数据并将其存储到内存中的字节范围。 |
| Read(Byte[], Int32, Int32) |
从该 NetworkStream 数组读取数据并将其存储到字节数组。 |
Read(Span<Byte>)
- Source:
- NetworkStream.cs
- Source:
- NetworkStream.cs
- Source:
- NetworkStream.cs
- Source:
- NetworkStream.cs
- Source:
- 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
参数
要存储从中 NetworkStream读取的数据的内存区域。
返回
读入缓冲区的总字节数,介于零(0)和缓冲区的长度之间。 仅当请求了零个字节或没有更多字节可用时,该方法才会返回零(0),因为对等套接字执行了正常关闭。
例外
注解
此方法读取参数中可用的 buffer 数据量,并返回成功读取的字节数。
注释
通过调用NetworkStream属性来检查该属性是否CanRead可读。 如果尝试从不可读的读取 NetworkStream 项进行读取,你将获得一个 InvalidOperationException。
注释
如果收到一个 IOException属性,请检查该 InnerException 属性以确定它是否是由 a SocketException引起的。 如果是这样,请使用 ErrorCode 属性获取特定的错误代码,并参阅 Windows 套接字版本 2 API 错误代码文档,获取错误的详细说明。
适用于
Read(Byte[], Int32, Int32)
- Source:
- NetworkStream.cs
- Source:
- NetworkStream.cs
- Source:
- NetworkStream.cs
- Source:
- NetworkStream.cs
- Source:
- NetworkStream.cs
从该 NetworkStream 数组读取数据并将其存储到字节数组。
public:
override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public:
override int Read(cli::array <System::Byte> ^ buffer, int offset, int size);
public override int Read(byte[] buffer, int offset, int count);
public override int Read(byte[] buffer, int offset, int size);
override this.Read : byte[] * int * int -> int
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer
Public Overrides Function Read (buffer As Byte(), offset As Integer, size As Integer) As Integer
参数
- buffer
- Byte[]
一个类型 Byte 数组,它是内存中存储从中 NetworkStream读取的数据的位置。
- offset
- Int32
开始将数据存储到的位置 buffer 。
- countsize
- Int32
要从中读取的 NetworkStream字节数。
返回
在零(0)和请求的计数之间读取到缓冲区的总字节数。 仅当请求了零个字节或没有更多字节可用时,该方法才会返回零(0),因为对等套接字执行了正常关闭。
例外
buffer 是 null。
offset 小于 0。
-或-
offset 大于长度 buffer。
-或-
size 小于 0。
-或-
size大于减buffer号的offset长度。
示例
下面的代码示例将数据从 NetworkStream 缓冲区读取到缓冲区中。 如果数据可用,它将继续读取,直到到达流的末尾,并将接收的数据追加到 a 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 字节数。
注释
通过调用NetworkStream属性来检查该属性是否CanRead可读。 如果尝试从不可读的读取 NetworkStream 项进行读取,你将获得一个 InvalidOperationException。
注释
如果收到一个 IOException属性,请检查该 InnerException 属性以确定它是否是由 a SocketException引起的。 如果是这样,请使用 ErrorCode 属性获取特定的错误代码,并参阅 Windows 套接字版本 2 API 错误代码文档,获取错误的详细说明。