I have googled too many pages saying on the network reachability (only yes or no availibilty), but I never heard somebody could detect the network speed using Swift xcode environment. I need this feature(detect the network speed to some host), could someone gave me a clue on this issue
I made this func to calculate the network speed in Swift 3. I download an image from my server and calculate the elapsed time.
func testSpeed() {
let url = URL(string: "http://my_image_on_web_server.jpg")
let request = URLRequest(url: url!)
let session = URLSession.shared
let startTime = Date()
let task = session.dataTask(with: request) { (data, resp, error) in
guard error == nil && data != nil else{
print("connection error or data is nill")
return
}
guard resp != nil else{
print("respons is nill")
return
}
let length = CGFloat( (resp?.expectedContentLength)!) / 1000000.0
print(length)
let elapsed = CGFloat( Date().timeIntervalSince(startTime))
print("elapsed: \(elapsed)")
print("Speed: \(length/elapsed) Mb/sec")
}
task.resume()
}