码迷,mamicode.com
首页 > 其他好文 > 详细

服务器关闭连接

时间:2015-03-04 16:23:36      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

 

试验一

试验过程:

  1.Server仅投递唯一一个AcceptEx接收请求。

  2.Client连接。

  3.Server于连接完成回调中以Client Socket作为线程参数创建子线程,线程函数是Func。

  4.Func:

    将调用closesocket(s)关闭连接,在这个过程中Client无退出无closesocket(s)。

    Func关闭连接前

    技术分享

    关闭后,Func退出前

    技术分享

    Func退出后

    技术分享

小结:

  前提:无数据传输,无待决IO,Client自始至终无退出无closesocket(s)

  操作:Server调用closesocket(s)关闭连接

  结果:符合四步握手

 

试验二

试验过程:

  与试验一相同,不同点:

  在Server关闭连接前,与Client有数据往来。

结果:

  与试验一相同

小结:

  前提:有数据传输,无待决IO,Client自始至终无退出无closesocket(s)

  操作:Server调用closesocket(s)关闭连接

  结果:符合四步握手

 

试验三

  前提:Server和Client连接正常,Server上存在待决IO(WSARecv)  

  操作:Server某个线程调用closesocket(s)关闭连接

  结果:

    待决IO立即返回

    技术分享

    TCP连接状态(在Client未退出未关闭连接的情况下,TCP连接被粗暴关闭,直接跳过四步握手)

    技术分享

 

综上所述:

  前提:Client未退出未关闭连接

  操作:Server中某线程调用closesocket(s)关闭连接

  结果:

    若Server于Client Socket无待决IO(WSARecv),TCP连接儒雅关闭,呈Server—>Client单向关闭,符合四步分手;

    若Server于Client Socket有待决IO(WSARecv),待决IO即刻以bRet = 0, dwNumTransfer = 0, ErrorCode = 1236返回。与此    同时TCP连接跳过四步分手被暴力强关。

  

服务器关闭连接

标签:

原文地址:http://www.cnblogs.com/chaikefusibushiji/p/4313530.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!