2017-09-26 262 views
1

我试图确定网络上的设备是否正在运行Web服务器或不使用Java。为此,我使用Apache的HttpClient。我发送请求,如果设备运行Web服务器,我会得到一个响应 - 非常简单。“拒绝连接”异常与HttpClient中的超时之间的区别

但是,如果Web服务器没有运行,然后我观察到2件事情:

  • 的请求将被忽略,并会出现超时
  • 一个异常将被抛出。特别是,它看起来就像这样:

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

是有什么可以推断的设备,我试图连接到当我收到“连接被拒绝”异常与根本没有任何反应?

编辑:

只是为了澄清:我在做什么是运行这个针对本地网络上的设备。这意味着NAS盒,路由器,Windows电脑,iPad等。一些将嵌入Web服务器,其他则不会。大多数不会有防火墙。

我也很清楚地知道设备已启动并正在运行。

+0

检查此https://serverfault.com/questions/521359/why-do-some-connections-time-out-and-others-get-refused –

回答

1

不能推断出100%的把握什么,但:

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