2012-04-29 10 views
0

私は、PCに接続された専用LANセグメントに多数のデバイス(IPカメラ)を持っています。デバイスは、HTTPプロトコルを使用して個々のJPEGフレーム転送をサポートします。 可能な限り、すべてのデバイスに同時にHTTPリクエストを送信する必要があります。画像を取得するのに異なる時間がかかることがありますが、違いはありません。現代の中間レベルのCPUでの最初と最後の要求の間には、数ミリ秒の時間がかかります。 (私は非リアルタイムシステムを使用していることを知っています)。.NETネットワーキングライブラリを使用した複数の同時HTTPリクエスト

デバイスのピークデータ転送速度は約50Mbpsで、LANセグメントへのPC接続は1000Mbpsです。デバイスの数は約10です。 HTTP要求の典型的なサイズは約150バイトであり、応答は40.2.200KBです。

WebClientクラスのDownloadDataAsyncメソッドを使用します。すべてのデバイスに対して1つのインスタンスが使用されます。しかし、より効率的な方法がありますか?

+0

より効率的にはどういう意味ですか? 'DownloadDataAsync'はあなたの必要性を満たしていませんか? –

+0

たとえば、 'HttpWebRequest'を使用すると、リクエスト - レスポンス全体に対して時間がかかりません(約10%)。また、いくつかの 'WebClient'動作は、Internet Explorerの設定に依存します。しかし、最も重要なことは、複数のリクエスト間の最小遅延です。 – apdevelop

答えて

0

あなた自身が答えを出しました.HttpWebRequestはオーバーヘッドが低いため、やや高速です。しかし、それよりも速く行くのは難しいでしょう。

編集:もちろん、Rawソケットを使用してHTTPプロトコルを駆動することもできます。しかし、それは多くの仕事になるだろう。

道のカメラワークとネットワークレイアウトに依存
+0

未加工のソケットについてのおかげで、 'Socket'クラスを' BeginConnect'/'BeginSend'非同期メソッドとともに使用しようとします。 – apdevelop

0

...

あなたはマルチキャストソケットを使用することができます:あなたのLANである場合は、最も効率的な article 1 article 2

..

を(カメラとコントローラだけで構成されています) ブロードキャストを使用することはできますが、これはマルチキャストと比較して非常に少ないです(一部のルータ処理時間のみ)

+0

いくつかの理由から、私は今、HTTPプロトコルを使用することを制限しました。カメラはUDPプロトコルをサポートしていますが、いくつかの問題があります(マルチキャストについては不明)。 – apdevelop

関連する問題