1

存在することはわかっているが、それがいつかはわからない 1 つの URL に接続しようとしています。このサーバーにアクセスできないため、イベントを受信するために何も変更できません。

実際のコードはこれです。

URL url = new URL(urlName);
for(int j = 0 ; j< POOLING && disconnected; j++){
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    int status = connection.getResponseCode();
    if(status == HttpURLConnection.HTTP_OK || status == HttpURLConnection.HTTP_NOT_MODIFIED){
        //Some work
    }else{
        //wait 3s
        Thread.sleep(3000);       
    }
}

Java は私の最高のスキルではありません。このコードがパフォーマンスの観点から優れているかどうかはわかりません。3 秒ごとに新しい接続を開いていますか? または接続が再利用されますか?

disconnect() を呼び出すと、ループ内で新しい接続が開かれていないことを確認できますが、パフォーマンスに影響しますか?.

提案?URL が存在することを知るための迅速で最良の方法は何ですか?

4

2 に答える 2

0

1) 切断を使用してください。使用しない多数のオープン接続は必要ありません。使用しないリソースを破棄することは、どの言語でも基本的な方法です。
2) 3 秒ごとに新しいネットワーク接続を開いたり閉じたりすることがシステム リソースを汚染するかどうかはわかりません。それを確認する唯一の方法は試してみることです。
3) 「URL [存在しない]」がサーバーのダウンを意味する場合は、「ConnectException」を監視することをお勧めします。

于 2010-06-10T16:30:59.340 に答える
0

このコードは、パフォーマンスの観点からは問題ありません。毎回新しい接続が作成されます。とにかく、ループに a がある場合は、Thread.sleep(3000)パフォーマンスについて心配する必要はありません;)

サーバー側での接続の使用法が気になる場合は、多くの機能を備えたapache HTTP clientを調べることができます。デフォルトでキープアライブ接続を処理すると思います。

于 2010-06-10T16:08:52.110 に答える