Определить скорость интернета программно - PullRequest
9 голосов
/ 29 февраля 2012

Я знаю, с доступностью вы можете проверить, если вы подключены к Интернету.Но есть ли способ определить скорость этого соединения?Я пытаюсь рассчитать скорость загрузки, а также скорость загрузки отдельно.

Как программно определить скорость в интернете?

Ответы [ 2 ]

4 голосов
/ 29 февраля 2012

Если вы используете NSURLConnection для захвата большого файла (скажем, 1 МБ или больше), вы можете использовать делегат для отслеживания промежуточного прогресса загрузки.

В частности: если вы измеряете разницу в загруженных байтах и ​​разницу во времени между вызовами делегату, то вы можете вычислить текущую скорость в байтах в секунду (или другую единицу времени).

3 голосов
/ 19 января 2017

шаг 1: Возьмите URL-адрес загружаемого файла и настройте его с помощью NSURLSession и его метода dataTaskWithUrl.

шаг 2: Интеграция NSURLSessionDelegate, NSURLSessionDataDelegate метод в вашем контроллере.

шаг 3: Возьмите две CFAbsoluteTime переменные, которые хранят starTime, и присвойте CFAbsoluteTimeGetCurrent() и вторую stopTime в didReceiveData: Метод делегата.

шаг 4: Скорость счета вот так

  CFAbsoluteTime elapsedTime = stopTime - startTime;
  float speedOfConnection = elapsedTime != 0 ? [data length] / (stopTime - startTime) / 1024.0 / 1024.0 : -1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...