我有一个TcpClient对象,它使用底层的NetworkStream.Write()向服务器发送一些数据。为此 ,我有:关闭TCP连接的正确方法是什么
TcpClient server = new TcpClient(serverName, 50001);
/* ... */
NetworkStream stream = server.GetStream();
现在,当按下一个按钮,连接应该关闭。 关闭连接的正确方法是什么? MSDN文档说,关闭TcpClient(使用.Close())实际上并不关闭套接字,只关闭TcpClient资源(这至少是我理解文档的方式)。
那么,会不会正确地关闭连接的下一个代码?
stream.Close();
server.Close();
难道这还不够,还是应该首先检查(在某种程度上)如果流(或服务器)可以关闭(如果连接是半开或东西)......
更,NetworkStream.Close()
MSDN文档声明它释放资源(即使是套接字),所以也许关闭流就足够了,因为我阻止在那之后使用TcpClient。
什么是正确的方法?
我想我太信任智能感知了。 TcpClient.Close()的弹出窗口声明:“放弃此System.Net.Sockets.TcpClient实例而不关闭底层连接。”奇怪的事情。感谢您的回复。 – 2009-11-20 09:26:51
的确,这就是3.0文档(http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.close(VS.85).aspx)在第一句中所说的......但接着第三句说它*关闭Socket和NetworkStream。 3.5文档(我之前链接的)是一致的。我怀疑3.0文档中的行是一个错误。 – Joren 2009-11-20 09:32:41