NetworkStream.ReadAsync 方法

定义

重载

ReadAsync(Memory<Byte>, CancellationToken)

以异步操作形式,从 NetworkStream 读取数据,并将其存储在字节内存范围内。

ReadAsync(Byte[], Int32, Int32, CancellationToken)

以异步操作形式,从 NetworkStream 读取数据,并将其存储到字节数组的指定范围内。

ReadAsync(Memory<Byte>, CancellationToken)

Source:
NetworkStream.cs
Source:
NetworkStream.cs
Source:
NetworkStream.cs

以异步操作形式,从 NetworkStream 读取数据,并将其存储在字节内存范围内。

C#
public override System.Threading.Tasks.ValueTask<int> ReadAsync (Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);

参数

buffer
Memory<Byte>

要写入数据的缓冲区。

cancellationToken
CancellationToken

要监视取消请求的标记。

返回

表示异步读取操作的 ValueTask<TResult>。 其 Result 属性的值包含读入 buffer 的总字节数。

例外

访问套接字时出错。

- 或 -

从网络读取时出错。

取消令牌已取消。 此异常存储在返回的任务中。

注解

此方法读取可用 buffer 数据,并返回成功读取的字节数。

备注

通过调用 CanRead 属性检查 是否NetworkStream可读。 如果尝试从不可读的 读取 NetworkStream ,则会收到 InvalidOperationException

备注

如果收到 ,IOException检查 属性InnerException来确定它是否由 SocketException引起。 如果是这样,请使用 ErrorCode 属性获取特定的错误代码,并参阅 Windows 套接字版本 2 API 错误代码 文档以获取错误的详细说明。

适用于

.NET 9 和其他版本
产品 版本
.NET Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Source:
NetworkStream.cs
Source:
NetworkStream.cs
Source:
NetworkStream.cs

以异步操作形式,从 NetworkStream 读取数据,并将其存储到字节数组的指定范围内。

C#
public override System.Threading.Tasks.Task<int> ReadAsync (byte[] buffer, int offset, int size, System.Threading.CancellationToken cancellationToken);
C#
public override System.Threading.Tasks.Task<int> ReadAsync (byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);

参数

buffer
Byte[]

要写入数据的缓冲区。

offset
Int32

buffer 中开始将数据存储到的位置。

sizecount
Int32

要从 NetworkStream 中读取的字节数。

cancellationToken
CancellationToken

要监视取消请求的标记。

返回

表示异步读取操作的任务。 其 Result 属性的值包含读入 buffer 的总字节数。

例外

访问套接字时出错。

- 或 -

从网络读取时出错。

取消令牌已取消。 此异常存储在返回的任务中。

注解

此方法将数据读入 buffer 并返回成功读取的字节数。 该 ReadAsync 操作读取的数据量与可用数据量相同,最大为 参数指定的 size 字节数。

备注

通过调用 CanRead 属性检查 是否NetworkStream可读。 如果尝试从不可读的 读取 NetworkStream ,则会收到 InvalidOperationException

备注

如果收到 ,IOException检查 属性InnerException来确定它是否由 SocketException引起。 如果是这样,请使用 ErrorCode 属性获取特定的错误代码,并参阅 Windows 套接字版本 2 API 错误代码 文档以获取错误的详细说明。

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Read(Byte[], Int32, Int32)异常。

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 1.3, 1.4, 1.6, 2.1