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 所有权初始化指定 SocketNetworkStream 类的新实例。 |
NetworkStream(Socket, FileAccess) |
为具有指定访问权限的指定 Socket 创建 NetworkStream 类的新实例。 |
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) |
配置如何执行从异步可释放项返回的任务的 await。 |