1

UDP プロトコルに基づいて、Adobe AIR を使用して単純なサーバー/クライアント アプリケーション (Windows) を作成しました。私が達成したいのは、単一の PC でネットワーク障害 (遅延、パケット損失、パケットの並べ替え) の下でアプリケーションがどのように機能するかをテストすることです。

ネットワーク障害シミュレーション用のプログラムはたくさんありますが、それらはすべて 2 台の PC 間のネットワーク障害をシミュレートするように作成されているようで、これは私が必要としているものではありません。

4

1 に答える 1

0

Windows を使用している場合、ローカルホストの遅延に遅延を生じさせることはほとんどありません。この冬、私はこの問題に思いつき、それが問題を解決した方法です。

すべてのレイテンシ ロジックは AS3 コードに含まれます。いくつかのデータ (ソケット データ進行イベント) を受信した瞬間に、必要な遅延で新しいタイマーを作成 (または既存のものを使用) し、受信したソケット データを Timer.COMPLETE イベントで渡します。タイマーが起動すると、通常はタイマーなしで行うのと同じようにデータを使用できます。必要な関数を呼び出し、処理し、必要なことを行います。Timer の代わりに setTimeout を使用することもできますが、実際には問題ありません。タイマーを作成しないことでランダムなパケット損失を追加することもできるため、データが通過しません。また、ランダムなタイマー時間を使用して、一部のパケットの順序を変更することもできます。

実装は実際にあなたがすでに持っているものに依存するため、コードは記述しません。しかし、この小さなヒントがあなたの助けになることを願っています:)

于 2013-07-25T04:10:03.787 に答える