2017-09-26 18 views
1

ネットワーク上のデバイスがJavaを使用しているかどうかを判断しようとしています。これを行うために私はApacheのHttpClientを使用しています。私はリクエストを送信し、デバイスがWebサーバーを実行している場合は応答が得られます。 Webサーバが、その後実行されていない場合「接続が拒否されました」例外とHttpClientのタイムアウトの違い

しかし、私が観察してきた2つのことが起こる:

  • 要求は無視され、タイムアウトは例外がスローされます
  • 発生します。

    org.apache.http.conn.HttpHostConnectException:特に、それは次のようになります。接続が拒否されました::

はです接続失敗[/192.168.12.133] 192.168.12.133:80に接続します私が「接続が拒否されました」という例外を受け取ったときに接続しようとしているデバイスについて推測できるものは何もありません。

編集:

だけ明確にする:私は何をやっていることは、ローカルネットワーク上のデバイスに対して、これを実行しています。それは、NASボックス、ルータ、Windowsコンピュータ、iPadsなどを意味します。ほとんどの場合、ファイアウォールはありません。

私はまた、デバイスが稼動していることを100%確信しています。

+0

これを確認してくださいhttps://serverfault.com/questions/521359/why-do-some-connections-time-out-and-others-get-refused –

答えて

1

あなたは100%確実に何かを推測することはできませんが、:

  • 接続タイムアウトは、おそらくホスト/ポートがファイアウォールで保護されていることのいずれかを意味し、またはホストが「オフ」です。
  • 接続が拒否されたのは、接続しようとしているポートでホストがサービスを実行していない可能性があるためです。
関連する問題