2012-05-28 54 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