如何使用swift检查网络速度

时间:2016-07-28 12:02:27

标签: swift performance networking detect

我搜索了太多关于网络可达性的页面(只有是或没有可用),但我从未听说过有人可以使用Swift xcode环境检测到网络速度。我需要这个功能(检测一些主机的网络速度),有人能给我一个关于这个问题的线索

1 个答案:

答案 0 :(得分:7)

我使用此函数计算 Swift 3 中的网络速度。 我从服务器下载图像并计算经过的时间。

 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()


}