【问题标题】:How to check the network speed using swift如何使用swift检查网络速度
【发布时间】:2016-07-28 12:02:27
【问题描述】:

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

【问题讨论】:

  • 速度是指理论吞吐量还是实际吞吐量?只是局域网还是与服务器的整个连接? HTTP 或其他协议?
  • 为什么我渴望这个功能?因为我的应用程序需要从主机下载一些xml文件,如果网络很慢,下载会给用户带来很大的不便。所以在app提前知道速度太慢的情况下取消下载就好了
  • 我的意思不是局域网的速度,而是与服务器的整个连接。谢谢你的cmets
  • 类似问题的链接应该可以帮助您回答这个问题。

标签: swift performance networking detect


【解决方案1】:

我做了这个函数来计算 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()


}

【讨论】:

  • 我一直在寻找可以在 Swift 2 中使用的东西,经过一些调整,这段代码可以完美运行,谢谢!!
  • @Brett 这段代码很好,但 speediest.net 和提到的代码之间存在巨大差异。 Rob 有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-09
  • 2013-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-28
  • 1970-01-01
相关资源
最近更新 更多