C # - Чтобы закрыть NetworkStream, вызовите stream.Close или socket.Shutdown?

Мне было интересно, знает ли кто-нибудь лучший способ избавиться от класса, использующего объект Socket и объект NetworkStream? У рассматриваемого класса есть экземпляр NetworkStream и экземпляр Socket, который используется для создания NetworkStream.

this.socket = new Socket(
                           AddressFamily.InterNetwork,
                           SocketType.Stream,
                           ProtocolType.Tcp)
                        {
                            ReceiveBufferSize = 65536,
                            SendBufferSize = 150
                        };

this.socket.Connect(
                        new IPEndPoint(                                                                   
                              IPAddress.Parse(
                                          Properties.Settings.Default.MpsServer2),
                                          Properties.Settings.Default.MpsPort2));

this.stream = new NetworkStream(
                         this.socket, true);

Должен ли я сделать это в моем методе Dispose?

this.stream.Close();
this.socket.Shutdown(SocketShutdown.Both);
this.socket.Close();

Все это необходимо или слишком много?

9
задан Nick Ramirez 18 February 2011 в 22:38
поделиться