2012-05-28 55 views
2

TCP允許一方發出「FIN」,並讓另一方在結束連接的一方之前用一些數據作出響應。如何在啓動TCP連接關閉後接收數據?

如何使用.NET的TcpClient來實現這個目標?看起來我必須用Close來發出FIN,但之後我不能再撥打Client.Receive,因爲Client設置爲nullClose

+0

這是支持的。你可以直接使用Socket來做到這一點。但我不知道TcpClient。 – usr

回答

0

在.NET中做到這一點的方法是調用

Socket.Shutdown(SocketShutdown.Send); 

,或者,如果您使用的是TcpClient

TcpClient.Client.Shutdown(SocketShutdown.Send); 
2

發出關機輸出。這會發送FIN並阻止您寫入任何其他內容,但會將另一半連接斷開。

+0

如何「發出關機輸出」? –

+0

@romkyns在C#中我不知道,但它會是一個套接字上的方法。 – EJP