2012-05-23 12 views
9

Duplicar posible:
Iphone detect 3g or wifiiOS detección de la velocidad de conexión o de tipo

hay una manera de conseguir la velocidad actual de la red o si el dispositivo está en EDGE/3G/GPRS? Puedo usar Accesibilidad para distinguir WiFi de WMAN, pero eso no es suficiente para mi aplicación.

+1

¡No es un duplicado! –

+0

@gunjotsingh la respuesta a la pregunta inicial en realidad está aquí: https://stackoverflow.com/a/34333204/751932 Aunque la pregunta sobre la velocidad de conexión se marcó como duplicada para esto ... – Speakus

Respuesta

11

Si realmente necesita saberlo, tendrá que probarlo.

Configura una conexión a un servidor conocido que tiene baja latencia. En un hilo separado, marque la hora (Hora A) y envíe un paquete (asegúrese de que sea un paquete). Espera en ese hilo. Marque la hora del primer paquete (Tiempo B). Lee los datos hasta que termines Marque la hora del último paquete (Hora C). Asegúrese de que la respuesta del servidor abarque al menos tres paquetes.

Time B - Time A es una estimación aproximada de la latencia. Time C - Time B es una estimación aproximada del ancho de banda.

Porque desea ser lo más preciso posible, use el nivel más bajo de acceso a la red que tenga disponible (creo que en el iPhone esto es enchufes). Use bloques de datos aleatorios de longitudes fijas como su solicitud y respuesta. Unos pocos bytes para la solicitud deberían ser suficientes, pero la respuesta debe estar bien construida. Asegúrese de que el servidor envíe un primer paquete pequeño, luego una secuencia de paquetes lo suficientemente grande como para llenar tres o más.

En ese punto deberá realizar una prueba. Prueba, prueba, prueba y prueba. Pruebe los diferentes tipos de redes, pruebe con diferentes cantidades de tráfico de red, pruebe con redes de conmutación y pruebe cualquier otra cosa que se le ocurra.

+1

enfoque técnico interesante para esto. Entonces, independientemente de WIFI o 3G, etc. ... esto debería dar una estimación aproximada del ancho de banda disponible. Estaba buscando una solución como esta, así que lógicamente puedo tomar imágenes grandes o pequeñas a través de la red. Los más pequeños prefieren escenarios de ancho de banda más bajo – jcpennypincher

Cuestiones relacionadas