获取 "connection timeout" 而不是 "connection refused"

Getting "connection timeout" instead of "connection refused"

我正在测试我的应用程序,该应用程序从数据库请求一些数据。如果数据库关闭并安装在本地主机上,我会立即 Connection refused 但是当远程机器上的数据库 运行 时,会发生 Connection timeout 。有什么区别? 我正在使用 apache BasicDataSource 来建立连接。

连接被拒绝意味着服务根本不可用。参考What can be the reasons of connection refused errors? post.

Connection timeout是客户端和服务器之间必须建立连接的时间段。如果由于某种原因未建立,您的代码将在重试后抛出此异常。 https://itstillworks.com/server-connection-timeout-mean-22703.html 可以给你一些见解。

本地主机与远程主机:

在远程计算机上,该计算机充当代理,即该计算机是 运行,但无法通过网络访问基础服务。虽然在本地主机上说 localhost:port 已关闭,但连接会立即被拒绝,并且不会尝试等待连接。(尽管如果您的机器已启动该服务但连接建立不成功,您将超时)