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获取一个值,该值指示流是否支持查找。 当前不支持此属性,它始终返回 false。
CanTimeout指示超时属性是否可用于 NetworkStream。
CanWrite获取一个值,该值指示 NetworkStream 是否支持写入。
DataAvailable获取一个值,该值指示在要读取的 NetworkStream 上是否有可用的数据。
Length获取流上可用数据的长度。 此属性当前不受支持,总是引发 NotSupportedException。
Position获取或设置流中的当前位置。 此属性当前不受支持,总是引发 NotSupportedException。
Readable获取或设置一个值,该值指示 NetworkStream 是否可以读取。
ReadTimeout获取或设置读取操作阻止等待数据的时间。
Socket获取基础 Socket。
Writeable获取一个值,该值指示 NetworkStream 是否可写入数据。
WriteTimeout获取或设置写入操作阻止等待数据的时间。
  

方法

名称说明
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)从 NetworkStream 开始异步读取。
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)开始向流异步写入。
Close(Int32)等待指定的时间获许发送数据之后,关闭 NetworkStream。
CopyTo(Stream)从当前流中读取字节并将其写入到另一流中。
 (Inherited from Stream)
CopyTo(Stream, Int32)使用指定的缓冲区大小,从当前流中读取字节并将其写入到另一流中。
 (Inherited from Stream)
CopyToAsync(Stream)从当前流中异步读取字节并将其写入到另一个流中。
 (Inherited from Stream)
CopyToAsync(Stream, Int32)使用指定的缓冲区大小,从当前流中异步读取字节并将其写入到另一流中。
 (Inherited from Stream)
CopyToAsync(Stream, Int32, CancellationToken)使用指定的缓冲区大小和取消令牌,从当前流中异步读取字节并将其写入到另一个流中。
 (Inherited from Stream)
CreateObjRef(Type)创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。
 (Inherited from MarshalByRefObject)
CreateWaitHandle()分配 WaitHandle 对象。
 (Inherited from Stream)
Dispose()释放由 Stream 使用的所有资源。
 (Inherited from Stream)
Dispose(Boolean)释放由 NetworkStream 占用的非托管资源,还可以另外再释放托管资源。
EndRead(IAsyncResult)处理异步读取的结束。
EndWrite(IAsyncResult)处理异步写入的结束。
Equals(Object)确定指定的对象是否等于当前对象。
 (Inherited from Object)
Finalize()释放由 NetworkStream 使用的所有资源。
Flush()刷新流中的数据。 此方法保留供将来使用。
FlushAsync()异步清除此流的所有缓冲区并导致所有缓冲数据都写入基础设备中。
 (Inherited from Stream)
FlushAsync(CancellationToken)以异步操作形式刷新流中的数据。
GetHashCode()作为默认哈希函数。
 (Inherited from Object)
GetLifetimeService()检索控制此实例的生存期策略的当前生存期服务对象。
 (Inherited from MarshalByRefObject)
GetType()获取当前实例的 Type。
 (Inherited from Object)
InitializeLifetimeService()获取生存期服务对象来控制此实例的生存期策略。
 (Inherited from MarshalByRefObject)
MemberwiseClone()创建当前 Object 的浅表副本。
 (Inherited from Object)
MemberwiseClone(Boolean)创建当前 MarshalByRefObject 对象的浅表副本。
 (Inherited from MarshalByRefObject)
ObjectInvariant()提供对 Contract 的支持。
 (Inherited from Stream)
Read(Byte[], Int32, Int32)从 NetworkStream 读取数据。
ReadAsync(Byte[], Int32, Int32)从当前流异步读取字节序列,并将流中的位置提升读取的字节数。
 (Inherited from Stream)
Seek(Int64, SeekOrigin)将流的当前位置设置为给定值。 此方法当前不受支持,总是引发 NotSupportedException。
SetLength(Int64)设置流的长度。 此方法始终引发 NotSupportedException。
ToString()返回表示当前对象的字符串。
 (Inherited from Object)
Write(Byte[], Int32, Int32)将数据写入 NetworkStream。
WriteAsync(Byte[], Int32, Int32)将字节序列异步写入当前流,并将流的当前位置提升写入的字节数。
 (Inherited from Stream)
  

 

注解

         NetworkStream类提供了用于通过发送和接收数据的方法Stream处于阻止模式套接字。 有关详细信息,有关阻止与非阻止性Sockets,请参阅使用异步客户端套接字。 可以使用NetworkStream的这两个同步和异步数据传输类。 有关同步和异步通信的详细信息,请参阅套接字。

 

1、若要创建NetworkStream,则必须提供连接Socket 此外可以指定哪些FileAccess权限NetworkStream通过提供具有Socket。 默认情况下,关闭NetworkStream不会关闭所提供Socket。 如果你想NetworkStream能够关闭所提供的权限Socket,则必须指定true的值的ownsSocket参数。

2、使用WriteRead方法用于简单的单线程同步阻塞 I/O 如果你想要处理 I/O 使用单独的线程,请考虑使用BeginWriteEndWrite方法,或BeginReadEndRead方法进行通信。

3、NetworkStream不支持对网络数据流的随机访问。 CanSeek属性,用于指示流是否支持查找,始终是false; 读取Position属性,读取Length属性或调用Seek方法将引发NotSupportedException.

4、读取和写入操作可以同时执行的实例上NetworkStream类,而无需同步。 只要没有个写入操作的一个唯一线程和读取操作的一个唯一的线程,读取之间将存在交叉引用和写线程并没有进行的同步不需要。

 

https://blog.csdn.net/WuLex/article/details/97256098

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值