2016-07-28 3 views
3

私はネットワークの到達可能性について言われているページが多すぎます(利用できるかどうかはわかりません)が、Swift xcode環境を使って誰かがネットワーク速度を検出することはありませんでした。私はこの機能を必要としています(ネットワークスピードをホストに検出する必要があります)。swiftを使ってネットワークの速度をチェックする方法

+0

速度は、理論的または実世界のスループットを意味しますか?ローカルエリアネットワークだけでなく、サーバーとの完全な接続? HTTPやその他のプロトコル? – ColGraff

+0

[iOS 8でインターネットの速度を判断する正しい方法]の可能な複製(http://stackoverflow.com/questions/33887748/right-way-of-determining-internet-speed-in-ios-8) – ColGraff

+0

なぜ私はこの機能を熱望していますか?私のアプリはホストからxmlファイルをダウンロードする必要があるので、ネットワークが遅い場合、ダウンロードは非常に不快なものになります。だから、アプリケーションがあまりにも遅いことを事前に知っているときにダウンロードをキャンセルすると良いでしょう。 – evering7

答えて

2

この機能を使用してネットワーク速度を計算しました。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() 


} 
関連する問題