NetworkStream 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为网络访问提供数据的基础流。
public ref class NetworkStream : System::IO::Stream
public class NetworkStream : System.IO.Stream
type NetworkStream = class
inherit Stream
type NetworkStream = class
inherit Stream
interface IDisposable
Public Class NetworkStream
Inherits Stream
- 继承
- 继承
- 实现
注解
类 NetworkStream 提供用于在阻止模式下通过 Stream 套接字发送和接收数据的方法。 有关阻止与非阻止 Socket的详细信息,请参阅 使用异步客户端套接字。 可以使用 NetworkStream 类进行同步和异步数据传输。 有关同步和异步通信的详细信息,请参阅 套接字。
若要创建 NetworkStream,必须提供连接的 Socket。 还可以指定 对NetworkStream提供的 Socket具有哪些FileAccess权限。 默认情况下,关闭 NetworkStream 不会关闭提供的 Socket。 如果希望 NetworkStream 具有关闭所提供的 Socket的权限,则必须为 参数的值ownsSocket
指定 true
。
Write将 和 Read 方法用于简单的单线程同步阻塞 I/O。 如果要异步处理 I/O,请考虑使用 Task 基于 或 ValueTask的方法 ReadAsync 和 WriteAsync。
NetworkStream不支持对网络数据流的随机访问。 属性的值 CanSeek (指示流是否支持查找)始终 false
为 ;读取 Position 属性、读取 Length 属性或调用 Seek 方法将引发 NotSupportedException。
可以在类的 NetworkStream 实例上同时执行读取和写入操作,而无需同步。 只要写入操作有一个唯一线程,读取操作有一个唯一线程,读写线程之间就不存在交叉干扰,也不需要同步。
构造函数
NetworkStream(Socket) |
为指定的 Socket 创建 NetworkStream 类的新实例。 |
NetworkStream(Socket, Boolean) |
用指定的 Socket 所属权为指定的 Socket 初始化 NetworkStream 类的新实例。 |
NetworkStream(Socket, FileAccess) |
用指定的访问权限为指定的 NetworkStream 创建 Socket 类的新实例。 |
NetworkStream(Socket, FileAccess, Boolean) |
用指定的访问权限和指定的 Socket 所属权为指定的 Socket 创建 NetworkStream 类的新实例。 |
属性
CanRead |
获取一个值,该值指示 NetworkStream 是否支持读取。 |
CanSeek |
获取一个值,该值指示流是否支持查找。 目前不支持此属性。 此属性始终返回 |
CanTimeout |
指示超时属性是否可用于 NetworkStream。 |
CanTimeout |
获取一个值,该值确定当前流是否可以超时。 (继承自 Stream) |
CanWrite |
获取一个值,该值指示 NetworkStream 是否支持写入。 |
DataAvailable |
获取一个值,该值指示 上的数据是否可用 NetworkStream ,以便立即读取。 |
Length |
获取流上可用数据的长度。 此属性当前不受支持,总是引发 NotSupportedException。 |
Position |
获取或设置流中的当前位置。 此属性当前不受支持,总是引发 NotSupportedException。 |
Readable |
获取或设置一个值,该值指示 NetworkStream 是否可以读取。 |
ReadTimeout |
获取或设置读取操作阻止等待数据的时间。 |
ReadTimeout |
获取或设置一个值(以毫秒为单位),该值确定流在超时前将尝试读取的时间。 (继承自 Stream) |
Socket |
获取基础 Socket。 |
Writeable |
获取一个值,该值指示 NetworkStream 是否可写入数据。 |
WriteTimeout |
获取或设置写入操作阻止等待数据的时间。 |
WriteTimeout |
获取或设置一个值(以毫秒为单位),该值确定流在超时前将尝试写入多长时间。 (继承自 Stream) |
方法
显式接口实现
IDisposable.Dispose() |
此 API 支持产品基础结构,不能在代码中直接使用。 释放由 NetworkStream 使用的所有资源。 |
扩展方法
CopyToAsync(Stream, PipeWriter, CancellationToken) |
使用取消令牌从 Stream 中异步读取字节并将其写入到指定的 PipeWriter。 |
ConfigureAwait(IAsyncDisposable, Boolean) |
配置如何执行从异步可处置项返回的任务的等待。 |
适用于
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈