我对 Socket 对象上的相关方法的聚宝盆感到有些困惑,这些方法应该关闭并清理套接字连接。考虑以下:
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect("192.168.1.22", 8333);
socket.Send(Encoding.UTF8.GetBytes("hello"));
// now for the closing fun
socket.Shutdown(SocketShutdown.Both);
socket.Disconnect(false);
socket.Close();
socket.Dispose();
另外,这家伙说要真正干净地关闭连接,必须先执行socket.Shutdown(SocketShudown.Send)
,然后等待对方响应。
关闭然后清理套接字连接的正确方法是什么?