C# 仅仅关闭套接字就足够了,还是我也应该关闭流?
当我通过TCP套接字与服务器建立连接时,我使用以下代码进行通信:C# 仅仅关闭套接字就足够了,还是我也应该关闭流?,c#,sockets,tcp,C#,Sockets,Tcp,当我通过TCP套接字与服务器建立连接时,我使用以下代码进行通信: Socket socket = ... NetworkStream ns = new NetworkStream(socket); StreamReader sr = new StreamReader(ns); StreamWriter sw = new StreamWriter(ns); 现在。。。只做socket.Close()就够了吗还是执行以下操作更好: sw.Close(); sr.Close(); ns.Clos
Socket socket = ...
NetworkStream ns = new NetworkStream(socket);
StreamReader sr = new StreamReader(ns);
StreamWriter sw = new StreamWriter(ns);
现在。。。只做socket.Close()就够了吗代码>还是执行以下操作更好:
sw.Close();
sr.Close();
ns.Close();
socket.Close();
有人知道清理/关闭/释放插座最合适的方法是什么吗
另外,我是否应该对上面定义的每个变量执行Dispose()
?尝试了什么
:
关闭当前流并释放与当前流关联的任何资源(如套接字和文件句柄)。不要调用此方法,而是确保流被正确处理
因此:
您应该关闭输出流。这将刷新它,并关闭另一个流和套接字。不要自己关闭它们,或者如果必须,在输出流之后关闭它们。否则您可能会丢失数据。从未想过这一点。谢谢你,主持人,
using (NetworkStream ns = new NetworkStream(socket))
{
// Your code
}