【问题标题】:What is the exact difference between "Connect timed out" and "failed to connect to" in java.net.SocketTimeoutException?java.net.SocketTimeoutException中“连接超时”和“连接失败”之间的确切区别是什么?
【发布时间】:2020-06-22 01:47:43
【问题描述】:

在我的日志中,我可以找到两个 SocketTimeoutException。

1. SocketTimeoutException: 连接超时

Caused by: java.net.SocketTimeoutException: Connection timed out  
at java.net.PlainSocketImpl.socketConnect(Native Method)    
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) 
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) 
...

2。 SocketTimeoutException: 连接失败..

java.net.SocketTimeoutException: failed to connect to somedomain.com/123.123.123.44 (port 80) after 30000ms
at libcore.io.IoBridge.connectErrno(IoBridge.java:169)
at libcore.io.IoBridge.connect(IoBridge.java:122)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456)
at java.net.Socket.connect(Socket.java:882)
...

连接超时连接失败有什么区别?

【问题讨论】:

  • 我想说根本没有区别,只是第二个实现相当不标准。

标签: java android sockets http exception


【解决方案1】:

这两个词的意思是一样的,所以我的看法是例外都表示同样的事情。

不同的消息是由于使用了两种不同的套接字实现。

  • 第一种情况是使用标准的 Java 普通(非 SSL)套接字实现;即 Java SE 上的默认设置。

  • 第二种情况是使用 Android 上使用的 IOBridge 实现。

您的某些日志似乎来自 Android 设备。

【讨论】:

  • 是的,这两个例外都是由安卓设备制造的。
猜你喜欢
  • 2015-10-31
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 2021-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
相关资源
最近更新 更多