2012-05-23 11 views
9

可能性の重複入力します。デバイスは、EDGE/3G/GPRS上にある場合
Iphone detect 3g or wifiiOSの検出の接続速度や

は、現在のネットワーク速度を取得するが方法ですか? Reachabilityを使ってWiFIとWMANを区別することはできますが、それだけではアプリケーションには不十分です。

+1

重複していません! –

+0

@gunjotsingh最初の質問に対する答えは実際にここにあります:https://stackoverflow.com/a/34333204/751932接続速度に関する質問は、このために重複としてマークされていましたが... – Speakus

答えて

11

本当に知りたい場合は、テストする必要があります。

待機時間の短い既知のサーバーへの接続をセットアップします。別のスレッドで、時間(時間A)をマークし、パケットを送信します(パケットが1つであることを確認してください)。そのスレッドを待ちます。最初のパケットの時刻をマークします(時刻B)。終了するまでデータを読みます。最後のパケットの時刻をマークします(時刻C)。サーバーの応答が少なくとも3パケットに及ぶことを確認してください。

時間B - 時間Aは非常に大まかなレイテンシの推定値です。 時間C - 時間Bは帯域幅の大まかな概算です。

可能な限り正確にしたいので、利用可能なネットワークアクセスの最低レベルを使用してください(これはソケットであると私は考えています)。固定長のランダムデータブロックを要求と応答の両方として使用します。要求の数バイトで十分ですが、応答をうまく構築する必要があります。サーバーが小さな最初のパケットを送信し、次に3つ以上を満たすのに十分な大きさの一連のパケットを送信することを確認します。

その時点でテストする必要があります。テスト、テスト、テスト、テスト。さまざまなネットワークタイプをテストし、異なる量のネットワークトラフィックをテストし、ネットワークを交換してテストし、他に何か考えることができるかテストします。

+1

これに興味深い技術的アプローチ。したがって、WIFIや3Gなどとは関係なく...これは利用可能な帯域幅をいくらか推定するものでなければなりません。私はこのような解決策を探していたので、ネットワーク上で大きな画像と小さい画像のどちらかを論理的に引き出すことができます。帯域幅の小さいシナリオに適した小さいもの – jcpennypincher

関連する問題