java - 区分连​​接被拒绝和连接超时

标签 java sockets connection

使用 java.net.Socket.connect() 时,拒绝连接和超时都会导致 ConnectException

java.net.ConnectException: Connection timed out: connect

java.net.ConnectException: Connection refused: connect

我怎样才能安全地区分这两者?当然,解析错误消息就可以完成工作。但是当消息在未来的 Java 版本中发生变化时,我就不走运了。

大局观:我正在编写一个使用 JAX-WS 和 Metro 实现的 Web 服务客户端。当一个web服务调用失败时,我想清楚的报告失败的原因,以便快速解决问题。

最佳答案

测量调用 connect() 和抛出异常之间耗时,并传递该信息。

关于java - 区分连​​接被拒绝和连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3363494/

相关文章:

Java nio服务端客户端异步

c# - 关闭和清理 Socket 连接的正确方法是什么?

java - Python 套接字从 Java PrintWriter 套接字接收不完整的消息

Android蓝牙多连接问题?

javascript - type=text/javascript 和 language=javascript 之间的区别

java解析器文件文本

java - 为什么在这种情况下需要catch IOException

java - 在 redir 之后只接收少量的 UDP 数据包。 (安卓模拟器)

java - 将通用列表转换为通用数组

Java 多线程 HTTP