TcpListener是对Socket的包装,关于一个socket连接怎么样算是断开连接
EndDisconnect、Close、Shutdown这些的区别和作用
之前写了一个客户端小工具,想要在各种断开连接以后页面给一个按钮重新连接,于是就出现了这个问题。
虽然解决了,但是还是一知半解,肯定在某种情况下又会报错,所以想知道你们是如何处理的。
想知道TcpListener是怎么包装的
------解决思路----------------------
Close是销毁TcpListener整个对象占用的资源,没有去看内部的实现代码
但是MSDN上的是建议在关闭前,应该先调用Shutdown(),以避免连接的另一方出现连接超时的错误
Close是销毁TcpListener整个对象占用的资源,并且不必等待传数据发送完
MSDN上的是建议在关闭前,应该先调用Shutdown(),以保证数据传输的完整性并正常断开连接,否则连接的另一方要报读写超时的错误
Disconnect 断开连接,但不销毁socket,而Shutdown()是发送TCP的FIN置位的终止包,以便正常断开连接
https://msdn.microsoft.com/zh-cn/library/twketck3(v=VS.80).aspx