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 从已连接 StreamSocket 创建并执行基本的同步阻塞 I/O。
// Examples for constructors that do not specify file permission.
// Create the NetworkStream for communicating with the remote host.
NetworkStream^ myNetworkStream;
if ( networkStreamOwnsSocket )
{
myNetworkStream = gcnew NetworkStream( mySocket,true );
}
else
{
myNetworkStream = gcnew NetworkStream( mySocket );
}
// Examples for constructors that do not specify file permission.
// Create the NetworkStream for communicating with the remote host.
NetworkStream myNetworkStream;
if (networkStreamOwnsSocket){
myNetworkStream = new NetworkStream(mySocket, true);
}
else{
myNetworkStream = new NetworkStream(mySocket);
}
' Examples for constructors that do not specify file permission.
' Create the NetworkStream for communicating with the remote host.
Dim myNetworkStream As NetworkStream
If networkStreamOwnsSocket Then
myNetworkStream = New NetworkStream(mySocket, True)
Else
myNetworkStream = New NetworkStream(mySocket)
End If
注解
该 NetworkStream 类提供了在阻止模式下通过 Stream 套接字发送和接收数据的方法。 有关阻止与非阻止 Sockets 的详细信息,请参阅 使用异步客户端套接字。 可以将 NetworkStream 类用于同步和异步数据传输。 有关同步和异步通信的详细信息,请参阅 套接字。
若要创建, NetworkStream必须提供连接 Socket。 还可以指定对所提供的Socket权限NetworkStream拥有的权限FileAccess。 默认情况下,关闭 NetworkStream 未关闭提供的 Socket。 如果希望NetworkStream具有关闭所提供的Socket权限,则必须为参数的值ownsSocket
指定true
。
Write对简单的单线程同步阻塞 I/O 使用和Read方法。 如果要使用单独的线程处理 I/O,请考虑使用BeginWrite和EndWrite方法或BeginReadEndRead通信方法。
不支持 NetworkStream 对网络数据流进行随机访问。 指示流是否始终支持查找的属性的值CanSeek;读取Position属性、读取Length属性或调用Seek方法将引发一个NotSupportedException。false
可以在类实例 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 使用的所有资源。 |
扩展方法
ConfigureAwait(IAsyncDisposable, Boolean) |
配置如何执行从异步可处置项返回的任务的等待。 |