2017-09-26 46 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%的把握什麼,但:

  • 連接超時可能意味着要麼主機/端口的防火牆,或者主機爲「關」。
  • 拒絕連接可能意味着主機未在您嘗試連接的端口上運行任何服務。
相關問題