iOS Определение скорости или типа соединения [дубликаты]

Possible Duplicate:
Iphone detect 3g or wifi

Есть ли способ получить текущую скорость сети или если устройство находится на EDGE / 3G / GPRS? Я могу использовать Reachability, чтобы отличить WiFI от WMAN, но этого недостаточно для моего приложения.

Ответы на вопрос(1)

Установите соединение с известным сервером с низкой задержкой. В отдельном потоке отметьте время (время A) и отправьте пакет (убедитесь, что это один пакет). Подожди в этой теме. Отметьте время первого пакета (время B). Прочитайте данные, пока не закончите. Отметьте время последнего пакета (время C). Убедитесь, что ответ сервера охватывает как минимум три пакета.

Время B - Время A - очень грубая оценка задержки. Время C - Время B является очень приблизительной оценкой пропускной способности.

Поскольку вы хотите быть максимально точным, используйте самый низкий уровень доступа к сети, который у вас есть (я думаю, на iPhone это сокеты). Используйте случайные блоки данных фиксированной длины в качестве вашего запроса и ответа. Достаточно нескольких байтов для запроса, но ответ должен быть хорошо составлен. Убедитесь, что сервер отправляет сначала маленький пакет, а затем последовательность пакетов, достаточно большую, чтобы заполнить три или более.

В этот момент вам нужно будет проверить. Тестируйте, тестируйте, тестируйте и тестируйте. Тестируйте на разных типах сетей, тестируйте с различными объемами сетевого трафика, тестируйте с коммутацией сетей и тестируйте все, что только можно придумать.

ВАШ ОТВЕТ НА ВОПРОС