我读the documentation on TcpClient.Close()并注意到了这一点:是否需要关闭NetworkStream和TcpClient,或只是TcpClient?
调用此方法将最终导致在相关插座的接近,也将关闭关联的NetworkStream用来发送和如果创建接收数据。
所以,纠正我,如果我错了,但是这说,如果一个在TcpClient
调用Close()
的NetworkStream
也将被关闭。
那么为什么在代码示例的末尾都调用了Close()
?
networkStream.Close();
tcpClient.Close();
只要拨打tcpClient.Close();
就可以了吗?
是的,这是没有必要的。在该示例中使用tcpClient.Close()也不是必需的,程序在此之后立即终止:) –
在.NET 3.0之前,必须显式关闭TcpClient和底层NetworkStream。从.NET 3.0开始,当关闭TcpClient时,底层NetworkStream被关闭。 Close()和Dispose()在TcpClient上是等价的,用Close()添加一些内部日志记录。 –