Java中Connection timed out和Connection refused的区别讲解

 更新时间:2019年04月10日 09:38:58   作者:Kikityer  
今天小编就为大家分享一篇关于Java中Connection timed out和Connection refused的区别讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

前言:这两个异常报出的时候,说明客户端没法正常连接到服务端,但是两者还是有区别的。

1:Connection timed out

在实际开发中经常会碰到Connection timed out的问题

java.net.ConnectException: Connection timed out (Connection timed out)
  at java.net.PlainSocketImpl.socketConnect(Native Method)
  at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
  at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
  at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
  at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
  at java.net.Socket.connect(Socket.java:589)
  at java.net.Socket.connect(Socket.java:538)
  at java.net.Socket.<init>(Socket.java:434)
  at java.net.Socket.<init>(Socket.java:211)
  at ClientSocketTimeout.main(ClientSocketTimeout.java:8)

当得到 Connection timed out: connect 的时候表示TCP路由不正常,原因有很多,可能是服务器无法ping通,可能是服务器(防火墙等)丢弃了该请求报文包,也可能是服务器应答太慢,又或者存在间歇性的问题(这种情况很难从日志文件中排查问题)。

2:Connection refused

当得到Connection refused: connect 异常的时候表示从本地客户端到目标IP地址的路由是正常的,但是该目标端口没有进程在监听,然后服务端拒绝掉了连接。

一个成功的tcp链接将会看到Syn,Syn-Ack,Ack,这也就是我们预期的TCP三次握手。当使用tcpdump或wireshark抓包工具来探测发送过来的请求报文包时,Connection refused将会看到Syn,Rst。

Connection refused问题排查

1. 查看防火墙是否打开,如防火墙打开,端口是否开放

2. 查看服务端是否正常运行

3. 查看服务端监听的端口与客户端访问的端口是否一致

jps | grep [appname]

netstat -anp | grep [pid]

4. ping hostname, telnet hostname port

5. 检查客户端访问的hostname和port是否正确

6.  检测服务端监听端口是host是否使用了127.0.0.1/localhost

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • 浅谈DetachedCriteria和Criteria的使用方法(必看)

    浅谈DetachedCriteria和Criteria的使用方法(必看)

    下面小编就为大家带来一篇浅谈DetachedCriteria和Criteria的使用方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • spring @Validated 注解开发中使用group分组校验的实现

    spring @Validated 注解开发中使用group分组校验的实现

    这篇文章主要介绍了spring @Validated 注解开发中使用group分组校验的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • mybatis-plus指定字段模糊查询的实现方法

    mybatis-plus指定字段模糊查询的实现方法

    最近项目中使用springboot+mybatis-plus来实现,所以下面这篇文章主要给大家介绍了关于mybatis-plus实现指定字段模糊查询的相关资料,需要的朋友可以参考下
    2022-04-04
  • Java中的RASP机制实现详解

    Java中的RASP机制实现详解

    这篇文章主要介绍了Java中的RASP实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 老生常谈java中cookie的使用

    老生常谈java中cookie的使用

    下面小编就为大家带来一篇老生常谈java中cookie的使用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 由浅到深带你详谈Java实现数组扩容的三种方式

    由浅到深带你详谈Java实现数组扩容的三种方式

    这篇文章主要详细介绍了Java实现数组扩容的三种方式,新建一个数组,把原来数组的内容搬到新数组中,使用system.arraycopy(),使用java.util.Arrays.copyOf()这三种方式,具有一定的参考价值,需要的朋友可以借鉴一下
    2023-06-06
  • 简单的java图片处理类(图片水印 图片缩放)

    简单的java图片处理类(图片水印 图片缩放)

    本图片处理类功能非常之强大可以实现几乎所有WEB开发中对图像的处理功能都集成了,包括有缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等功能
    2013-11-11
  • 浅析Java的Hibernate框架中的继承关系设计

    浅析Java的Hibernate框架中的继承关系设计

    这篇文章主要介绍了Java的Hibernate框架中的继承关系设计,Hibernate是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • Java中BigDecimal与0比较的一个坑实战记录

    Java中BigDecimal与0比较的一个坑实战记录

    BigDecimal属于大数据,精度极高,不属于基本数据类型,属于java对象,下面这篇文章主要给大家介绍了关于Java中BigDecimal与0比较的一个坑的相关资料,需要的朋友可以参考下
    2022-12-12
  • SpringMVC DispatcherServlet组件实现解析

    SpringMVC DispatcherServlet组件实现解析

    这篇文章主要介绍了SpringMVC DispatcherServlet组件实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03

最新评论