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.”

  • 相关阅读:
    [GXOI/GZOI2019] 旧词
    [HDU6756] Finding a MEX
    [洛谷P5110] 块速递推
    [CF739C] Alyona and towers
    1349. 修理牛棚
    L2-028 秀恩爱分得快 (25 分)
    L2-009 抢红包 (25 分)
    L1-043 阅览室 (20 分)
    2020年天梯赛-模拟赛 L1-6 检查密码 (15 分)
    L1-046 整除光棍 (20 分)
  • 原文地址:https://www.cnblogs.com/alipayhutu/p/2554068.html
Copyright © 2011-2022 走看看