【发布时间】:2014-12-02 20:01:40
【问题描述】:
我现在正在开发一个使用 TCP 协议作为其通信协议的服务器/客户端应用程序。我有两个关于 TcpClient 及其底层 NetworkStream 的问题。我正在搜索,但找不到明确的答案
(1) 如果我使用 TcpClient.Close() 方法关闭 TcpClient,底层的 NetworkStream 是否也会自动关闭?对于 .Net framework 4.5 此处 (http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.getstream(v=vs.110).aspx) 表示“在发送和接收数据时必须关闭 NetworkStream。关闭 TcpClient 不会释放 NetworkStream。”但是,对于 .Net 框架 4.5 此处 ("http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.close(v=vs.110).aspx") 表示“调用此方法 (TcpClient.Close) 最终将导致关联的 Socket 关闭,并且还将关闭用于发送和如果创建了数据,则接收数据。”我现在很困惑。
(2) 如果我保持我的 TcpClient 打开并连接,但我关闭/处置通过调用 TcpClient.GetStream 获得的底层 NetworkStream,我可以通过调用 GetStream 方法再次获得这样的流吗?
感谢您的投入!
【问题讨论】:
标签: dispose tcpclient networkstream