我们知道,一个基于TCP/IP的客户端-服务器的程序中,正常情况下,我会是启动服务器使其在一个端口上监听请求,等待客户端的连接;通过TCP的三次握手,客户端能够通过socket建立一个到服务器的连接;然后,两者就可以基于这个socket连接通信了。连接结束后,客户端(进程)会退出;在不需要继续处理客户请求的情况下,服务器(进程)也将退出。而且,当一个进程退出的时候,内核会关闭所有由这个进程打开的套接字,这里将触发TCP的四次挥手进而关闭一个socket连接。但是,在一些异常的情况下,譬如:服务器进程终止、服务器主机奔溃/奔溃后重启、服务器关机的情况下,客户端向服务器发起请求的时候,将会发生什么呢?下边,我们来看看这几种情况。

注意:一下描述的各种情况所使用的示例程序在文章的最后贴出

一、服务器进程终止

我们启动客户/服务器对,然后杀死子进程(模拟服务器进程崩溃的情形,我们可从中查看客户端将发生什么)。

1:在同一个主机上启动服务器和客户,并在客户上输入一行文本,以验证一切正常。正常情况下,改行文本将由服务器回射给客户。

2:找到服务器子进程的ID,通过kill命令杀死它。作为进程终止处理的部分工作,子进程中所有打开着的描述字都被关闭。这就导致向客户发送一个FIN,而客户TCP则响应以一个ACK。这就是TCP连接终止的前一半工作。

3:子进程终止时,内核将给父进程递交SIGCHLD信号。

4:客户上没有发生任何特殊之事。客户TCP接受来自服务器TCP的FIN并响应一个ACK,然后问

java如何处理tcp异常断开_针对TCP连接异常断开的分析相关推荐

  1. tcp ip协议_网络通信-TCP/IP协议族简述

    导读:计算机与网络设备要相互通信需要遵守同样的规则.例如,如何找到通信目标.该使用哪种语言通信.怎么结束通信等规则.不同的硬件.操作系统之间的通信都需要遵循同一种规则,这种规则也称为是协议.下面本文主 ...

  2. 主动断开socket链接_TCP连接与断开详解(socket通信)

    http://blog.csdn.net/Ctrl_qun/article/details/52518479 一.TCP数据报结构以及三次握手 TCP(Transmission Control Pro ...

  3. 主服务器连接异常帮助修复,LOL服务器连接异常怎么解决

    LOL英雄联盟提示"服务器连接异常,即将退出,请重新连接游戏",对此该如何解决呢?下面是学习啦小编收集整理的LOL服务器连接异常怎么解决,希望对大家有帮助~~ LOL服务器连接异常 ...

  4. mysql数据库连接异常,mysql连接数据库时处理连接异常

    连接数据库时处理连接异常 ·· $db = new PDO('mysql:host=localhost;dbname=test', $user, $pass); $rs = $db->query ...

  5. 手机为什么显示服务器异常即将退出游戏,LOL服务器连接异常即将退出怎么回事...

    玩英雄联盟游戏过程中提示"服务器连接异常即将退出",但是检查网络是没有问题的,那么有可能就是防火墙问题了,那么遇到这个问题该怎么办?不知道的朋友赶紧看看以下解决方法吧! Windo ...

  6. 金蝶专业版显示服务器异常,金蝶云专业版服务器连接异常

    金蝶云专业版服务器连接异常 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 路网 ...

  7. java 扫描tcp端口号_多线程TCP端口扫描 java实现

    界面部分: import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt. ...

  8. python 监听tcp端口_创建TCP监听_创建TCP监听_功能示例_Python SDK示例_SDK 参考_开发指南_负载均衡 - 阿里云...

    # encoding=utf-8 import json import sys # 调用AcsClient参数进行身份验证 from aliyunsdkcore.client import AcsCl ...

  9. JAVA ANDROID SOCKET通信检测(SERVER)连接是否断开

    Pre 解决思路 代码后记: 客户端app上的部分代码 调用: 服务器上: 客户端判断服务器是否还活着代码: PRE 在利用socket写通讯程序的时候,想检测服务器是否还活着. 从网上找了很多资料, ...

最新文章

  1. 蓝光电视再降价 海信42吋液晶不足五千
  2. 你知道数据中心宕机的真正成本吗?
  3. UVA 1593 Alignment of Code
  4. Google Capture The Flag 2018 (Quals) - Beginner's Quest - Reverse - Firmware
  5. Mybatis:基于注解形式,传入List,返回List实体
  6. 通过ribbon 根据服务名获取所有服务实例的IP和端口列表
  7. 技术人员应该如何培养
  8. 【机器学习】机器学习的学习经验总结!
  9. Obtaining the String
  10. 【python】装饰器
  11. 深入浅出InfoPath——动态获取InfoPath中的命名空间
  12. php mysql sqlite缓存_使用sqlite作为数据缓存
  13. Odoo10参考系列--工作流
  14. 正则表达式学习笔记008--字符组简记法2
  15. 服务器装系统后没有移动硬盘盘符
  16. 将.npy文件转.txt文件
  17. NBSI2内部功能实现大揭谜
  18. 安庆集团-冲刺日志(第五天)
  19. 手机APP测试——Perfecto
  20. 武汉大学 gps 计算机 陈冰,武汉大学2015届优秀毕业研究生名单.doc

热门文章

  1. linux查看网卡驱动文件夹,Linux网卡驱动类型
  2. IE/Firefox 自动关闭窗口
  3. 调试血泪经验之uart/ttl/rs232电平转换问题
  4. blast中evalue和bitscore的理解
  5. 全国大学生数学建模竞赛
  6. matlab单缸内燃机设计
  7. C语言变换控制台颜色
  8. enet分割_关于人体分割的训练Enet
  9. 完美世界手游服务器维护时间表,完美世界手游开服表
  10. crm 系统解决方案_如何将本地CRM组织的托管解决方案转换为非托管解决方案?...