当一个SOCKET客户端电脑意外断电后,服务器端 SOCKET 如何处理与之已经建立的连接?谢谢。

解决方案 »

  1.   


    非常感谢。我是想问一下,断开时间长了,服务器端的SOCKET 也不会自动关闭这个已经建立的连接,必须由程序开发人员编程实现时间检测和超时 关闭此 连接的功能吗?
      

  2.   


    非常感谢。我是想问一下,象这种突然断电导致的情况,断开时间长了,服务器端的SOCKET 也不会自动关闭这个已经建立的连接,必须由程序开发人员编程实现时间检测和    超时检测并 关闭此 超时 连接的功能吗?
      

  3.   


    非常感谢。我是想问一下,象这种突然断电导致的情况,断开时间长了,服务器端的SOCKET 也不会自动关闭这个已经建立的连接,必须由程序开发人员编程实现时间检测和    超时检测并 关闭此 超时 连接的功能吗?
    心跳包存在的必要性或相关功能点就包括:
    ●尽早检测到当前连接已不可用(不论啥原因,包括远端意外断电。)
    ●动态设定自定义的超时间隔
    ●关闭当前不可用连接并在自定义的时间间隔之后重连
    ●重连多少次或总共多长时间之内成功了,将这个过程写日志以备以后维护人员查看
    ●重连多少次或总共多长时间均失败时报警提示维护人员来手动解决连接失效问题
    ●……
      

  4.   


    非常感谢。我是想问一下,象这种突然断电导致的情况,断开时间长了,服务器端的SOCKET 也不会自动关闭这个已经建立的连接,必须由程序开发人员编程实现时间检测和    超时检测并 关闭此 超时 连接的功能吗?
    是的,server侧必须有效管理socket,不管什么原因造成的,
    如果某个socket超过设定时间没有数据通信,那么就应该主动close掉,
    同时释放服务器相关资源,
    否则异常情况下,server侧的资源很快就耗光了
      

  5.   

    tcp的心跳不是完全的普遍实现
    要完全解决这个硬断路问题,还是需要在你自己的应用协里添加检测指令来防止tcp硬件断路