0

こんにちは、URL を参照している httpwebrequest (C# ビジュアル スクリプト) があり、http スニファーでそれを分析しています。スクリプトを 100 回実行していますが、DNS ルックアップと TCP 接続は 1 回だけですか?

ループを設定するたびに接続しようとしていますが、どうすればこれを達成できますか?ヘッダー セクションの内容を変更する必要がありますか??

事前にt​​hnx。

(HttpWebRequest)WebRequest.Create("http://example.com");

                request.Method = "GET";
                request.ProtocolVersion = HttpVersion.Version10;
                request.Timeout = 10000;
                request.ReadWriteTimeout = 10000;

エラーは発生しませんが、完全に 100 回実行されますが、アナライザーによると、DNS と TCP は 1 回しか接続されません。そして、それをループ全体に接続したいのですが、これは可能ですか??

4

1 に答える 1

1

この動作が発生する理由は、接続の再利用とDNSホスト名のキャッシュが原因です。反復的なDNS要求を表示するには、要求ごとに異なるホストを使用するか、DNS TTL(Time To Live)タイムアウトを待ってDNSキャッシュエントリが期限切れになるのを待つ必要があります。TCP接続は、request.KeepAlive = false;を設定すると毎回発生するため、処理がより簡単になります。これにより、リクエストの完了後に接続が閉じられます。

于 2012-12-17T10:03:18.820 に答える