zoukankan      html  css  js  c++  java
  • TCP连接,底层重试机制,心跳包机制

    客户端与服务器端连接建立后,后面的故事会是怎样的呢,连接断开怎么办,需不需要重连,如何知道对方是活着的?一方强制关闭连接,对另一方的影响是什么呢?

    下面,逐一回答以下问题。

    【客户端】

    • 重连任务:如果session关闭,那么可以尝试做重连,例如加重连task等。具体的连接过程,与普通的客户端连接建立过程并无不同。
    • 心跳包判活:如果session空闲,可以可以尝试发些心跳包,监听是否能正常收到心跳包响应。

    【服务器端】

    • 如果连接断开,应如何处理?Server端不做定时扫描,断了就断了,等客户端重连,否则不是无谓操作麽。

    【如果一方关闭了,另一方什么反应?应如何处理?】

    • 客户端关闭,服务器端如何做?

    a). 如果此时,Server端正在读/写,则会报错:“java.io.IOException: 远程主机强迫关闭了一个现有的连接”,且socket上既有内容将会“丢失”。

    b). Server端可正常关闭连接,无需建重连任务。

    • 服务器端关闭,客户端如何做?

    a). 如果此时,Client端正在读/写,则会报错:“java.io.IOException: 远程主机强迫关闭了一个现有的连接”,且socket上既有内容将会“丢失”。

    b). 启动重连任务。

    • 如果Client尝试去连接的时候,Server端并未启动,如何?

    a). Client会收到异常报错:“connection refused.”

  • 相关阅读:
    POJ1785 Binary Search Heap Construction
    Bzoj1185 [HNOI2007]最小矩形覆盖
    POJ2409 Let it Bead
    Bzoj2732 [HNOI2012]射箭
    Bzoj4515 [Sdoi2016]游戏
    Bzoj3925 [Zjoi2015]地震后的幻想乡
    Bzoj3223 Tyvj 1729 文艺平衡树
    COGS2642 / Bzoj4590 [Shoi2015]自动刷题机
    Bzoj1313 [HAOI2008]下落的圆盘
    python——描述符
  • 原文地址:https://www.cnblogs.com/alipayhutu/p/2554068.html
Copyright © 2011-2022 走看看