DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2017年3月24日

摘要: 此处的”非正常断开”指TCP连接不是以优雅的方式断开,如网线故障等物理链路的原因,还有突然主机断电等原因有两种方法可以检测:1.TCP连接双方定时发握手消息 2.利用TCP协议栈中的KeepAlive探测第二种方法简单可靠,只需对TCP连接两个Socket设定KeepAlive探测,所以本文只讲第二 阅读全文
posted @ 2017-03-24 16:07 DoubleLi 阅读(581) 评论(0) 推荐(0)

摘要: 最近在windows编程时需要考虑到“如何优雅地关闭一个socket”,查阅了一些资料,现将查到的相关资料做个汇编,希望能对后来者有所帮助(比较懒,所以英文资料没有翻译:-)) 1. 关闭Socket时究竟做了什么 关闭socket分为主动关闭(Active closure)和被动关闭(Passiv 阅读全文
posted @ 2017-03-24 16:04 DoubleLi 阅读(3354) 评论(0) 推荐(0)

摘要: tcp状态: LISTEN:侦听来自远方的TCP端口的连接请求SYN-SENT:再发送连接请求后等待匹配的连接请求SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认ESTABLISHED:代表一个打开的连接FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请 阅读全文
posted @ 2017-03-24 11:41 DoubleLi 阅读(748) 评论(0) 推荐(1)

摘要: 从TCP协议角度来看,一个已建立的TCP连接有两种关闭方式,一种是正常关闭,即四次挥手关闭连接;还有一种则是异常关闭,我们通常称之为连接重置(RESET)。首先说一下正常关闭时四次挥手的状态变迁,关闭连接的主动方状态变迁是FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT,而关闭连接 阅读全文
posted @ 2017-03-24 11:36 DoubleLi 阅读(2022) 评论(0) 推荐(0)

摘要: 以下描述主要是针对windows平台下的TCP socket而言。 首先需要区分一下关闭socket和关闭TCP连接的区别,关闭TCP连接是指TCP协议层的东西,就是两个TCP端之间交换了一些协议包(FIN,RST等),具体的交换过程可以看TCP协议,这里不详细描述了。而关闭socket是指关闭用户 阅读全文
posted @ 2017-03-24 11:06 DoubleLi 阅读(2236) 评论(0) 推荐(0)

摘要: 首先给出MSDN上一段设置阻塞超时的代码:(网址为http://social.msdn.microsoft.com/Forums/zh-SG/visualcpluszhchs/thread/3d9daec0-f000-4bf1-add1-3beab8e398eb) 1 2 3 4 5 6 7 8 9 阅读全文
posted @ 2017-03-24 10:37 DoubleLi 阅读(1760) 评论(0) 推荐(0)