当前位置: 代码迷 >> C# >> 关于TcpListener.Stop怎么实现
  详细解决方案

关于TcpListener.Stop怎么实现

热度:122   发布时间:2016-05-05 02:42:53.0
关于TcpListener.Stop如何实现
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
  相关解决方案