ios - 检测丢包

标签 ios swift

为了检测互联网连接,我使用简单的类:

public class Reachability {
    class func isConnectedToNetwork() -> Bool {
        var zeroAddress = sockaddr_in()
        zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
        zeroAddress.sin_family = sa_family_t(AF_INET)
        let defaultRouteReachability = withUnsafePointer(&zeroAddress) {
            SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))
        }
        var flags = SCNetworkReachabilityFlags()
        if !SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) {
            return false
        }
        let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0
        let needsConnection = (flags.rawValue & UInt32(kSCNetworkFlagsConnectionRequired)) != 0
        return (isReachable && !needsConnection)
    }
}

然后在我的代码中检查:
if Reachability.isConnectedToNetwork() == false {
                print("error")
            }

但这对我来说还不够……这是否有可能检测包裹丢失或其他问题。因为当我模拟此连接时:

enter image description here

我得到了错误的结果。在我的应用中。

最佳答案

可达性不受丢失的数据包数量的影响。与根本没有网络连接相反,这可以认为是暂时的数据包丢失。可达性与打开3G,WiFi或Mac以太网有关,而不是与连接质量有关。因此,这些结果不是错误的,而是预期的。

关于ios - 检测丢包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35913768/

相关文章:

IOS 蓝牙应用程序 "Terminated due to signal 9"仅在后台模式下

Swift Present 模型 ViewController 不显示 UINavigationBar?

ios - 当它是一个单独的 Swift 文件时,从 TableViewDataSource 中删除或添加单元格

ios - 横向模式仅适用于视频

ios - 使用 Audiokit Sampler 实现泛音系列(谐波系列)

objective-c - 用循环顺序显示图像

ios - 将枚举类型添加到 Swift 数组时出错

ios - SpriteKit 中的对象出现在屏幕底部

ios - libc++ 是什么时候在 iOS 中引入的?

ios - 带有用户文本输入的设置 View