2016-07-28 5 views
3

네트워크 연결 가능성 (예 또는 사용 가능 여부)에 대해 너무 많은 페이지로 봤지만 다른 사람이 Swift xcode 환경을 사용하여 네트워크 속도를 감지 할 수 있다는 것을 들어 보지 못했습니다. 이 기능이 필요합니다 (일부 호스트에 대한 네트워크 속도 감지). 누군가이 문제에 대한 단서를주었습니다.신속한 방법을 사용하여 네트워크 속도를 확인하는 방법

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


}