可达性在iOS上使用什么网络协议?

可达性在iOS上使用什么网络协议?,ios,network-protocols,reachability-swift,Ios,Network Protocols,Reachability Swift,我敢肯定,很少有%的iOS开发人员没有直接或通过像Alamofire这样的框架使用可达性 我感兴趣的是它到底做什么?我能做出的最好猜测是,给定主机,它打开套接字,然后侦听所述主机。但它使用的是什么网络协议,是简单的UDP(据我观察,它不是http),它定期向所述主机发送包并等待回答?可访问性根本不发送包。它甚至没有告诉您主机实际上是可访问的。它只是告诉您,如果您发出网络请求,那么系统将尝试使用一个活动的网络接口。这就是全部。没有承诺这些数据包会到达(更不用说你会得到回复),只有iOS会尝试发送它

我敢肯定,很少有%的iOS开发人员没有直接或通过像Alamofire这样的框架使用
可达性


我感兴趣的是它到底做什么?我能做出的最好猜测是,给定主机,它打开套接字,然后侦听所述主机。但它使用的是什么网络协议,是简单的UDP(据我观察,它不是http),它定期向所述主机发送包并等待回答?

可访问性根本不发送包。它甚至没有告诉您主机实际上是可访问的。它只是告诉您,如果您发出网络请求,那么系统将尝试使用一个活动的网络接口。这就是全部。没有承诺这些数据包会到达(更不用说你会得到回复),只有iOS会尝试发送它们

可达性实际上只有几个用途(大多数情况下不应该使用)。如果“无网络可用”会导致您修改用户界面,或者告诉您现在可能是重新尝试以前失败的连接的好时机,则此选项非常有用。(,你真的应该使用它。自从iOS 12以来,我不知道可达性有什么好的用途。)

要知道请求是否会成功,唯一的方法就是尝试发送请求,看看是否得到响应。这就是为什么不建议您在发送请求之前测试可达性。只要发送请求并处理出现的错误,因为总是有可能出错,即使可达性说您可以连接