我讀the documentation on TcpClient.Close()並注意到了這一點:是否需要關閉NetworkStream和TcpClient,或只是TcpClient?
調用此方法將最終導致在相關插座的接近,也將關閉關聯的NetworkStream用來發送和如果創建接收數據。
所以,糾正我,如果我錯了,但是這說,如果一個在TcpClient
調用Close()
的NetworkStream
也將被關閉。
那麼爲什麼在代碼示例的末尾都調用了Close()
?
networkStream.Close();
tcpClient.Close();
只要撥打tcpClient.Close();
就可以了嗎?
是的,這是沒有必要的。在該示例中使用tcpClient.Close()也不是必需的,程序在此之後立即終止:) –
在.NET 3.0之前,必須顯式關閉TcpClient和底層NetworkStream。從.NET 3.0開始,當關閉TcpClient時,底層NetworkStream被關閉。 Close()和Dispose()在TcpClient上是等價的,用Close()添加一些內部日誌記錄。 –