Ich weiß, mit der Erreichbarkeit können Sie überprüfen, ob Sie mit dem Internet verbunden sind. Aber gibt es eine Möglichkeit, die Geschwindigkeit dieser Verbindung zu bestimmen? Ich versuche, Upload-Geschwindigkeit sowie Download-Geschwindigkeit getrennt zu berechnen.
Wie kann ich die Geschwindigkeit im Internet programmatisch bestimmen?
Wenn Sie NSURLConnection
verwenden, um eine große Datei (z. B. 1 MB oder mehr) zu erfassen, können Sie eine Delegieren , um den Downloadfortschritt zu verfolgen.
Speziell: Wenn Sie den Unterschied in den heruntergeladenen Bytes und die Zeitdifferenz zwischen Aufrufen an den Delegaten messen, können Sie die fortlaufende Geschwindigkeit in Bytes pro Sekunde (oder einer anderen Zeiteinheit) berechnen.
Schritt 1: Nehmen Sie die URL der herunterladbaren Datei und konfigurieren Sie sie mit NSURLSession
und ihrer Methode dataTaskWithUrl
.
Schritt 2: Integrieren Sie die Methode NSURLSessionDelegate, NSURLSessionDataDelegate
in Ihren Controller.
Schritt 3: Nehmen Sie zwei CFAbsoluteTime
Variable, die starTime speichern und weisen Sie CFAbsoluteTimeGetCurrent()
und zweiten% stopTime
in didReceiveData:
Delegate-Methode zu.
Schritt 4: Zählen Sie die Geschwindigkeit wie folgt
%Vor%Tags und Links iphone