“拒绝连接”异常与HttpClient中的超时之间的区别

时间:2017-09-26 22:37:59

标签: java network-programming apache-httpclient-4.x

我正在尝试确定网络上的设备是否正在运行Web服务器,而不是使用Java。要做到这一点,我正在使用Apache的HttpClient。我发送了一个请求,如果设备运行一个Web服务器,我会得到一个响应 - 非常简单。

但是,如果Web服务器没有运行,那么我发现有两件事情发生了:

  • 请求将被忽略并且将发生超时
  • 将抛出异常。特别是,它看起来像这样:

    org.apache.http.conn.HttpHostConnectException:连接到192.168.12.133:80 [/192.168.12.133]失败:连接被拒绝:连接

当我收到“拒绝连接”异常而没有得到任何回复时,是否有任何可以推断出我正在尝试连接的设备?

编辑:

只是为了澄清:我正在做的是在本地网络上针对DEVICES运行此操作。这意味着NAS机箱,路由器,Windows计算机,iPad等。有些将具有嵌入式Web服务器,而其他则不具备。大多数都没有防火墙。

我也100%确定该设备已启动并正在运行。

1 个答案:

答案 0 :(得分:1)

您不能100%确定地推断任何事情,但是:

  • 连接超时可能意味着主机/端口是防火墙,或主机是“关闭”。
  • 拒绝连接可能意味着主机未在您尝试连接的端口上运行任何服务。