簡體   English   中英

Reachability 在 iOS 上使用什么網絡協議?

[英]What network protocol does Reachability use on iOS?

我敢肯定,在 iOS 名開發人員中,很少有人沒有直接或通過Alamofire等框架使用過Reachability

我感興趣的是它實際上做了什么? 我能做出的最好猜測是給定主機它打開 sockets 然后監聽所述主機。 但是它使用什么網絡協議,它是簡單的 UDP(據我觀察,它不是 http),它定期向所述主機發送包並等待答復?

可達性根本不發送數據包。 它甚至不會告訴您主機實際上是可達的。 它只是告訴您,如果您發出了一個.network 請求,那么系統將嘗試使用一個 active.network 接口。 就這樣。 沒有 promise 那些數據包會到達(更不用說你會得到響應),只有 iOS 會嘗試發送它們。

可達性實際上只有幾個用途(大多數時候不應該使用)。 如果“no.network is available”會導致您修改用戶界面,或者告訴您可能是重試先前失敗的連接的好時機,這將很有用。 自 iOS 12 起,您真的應該為此使用NWPathMonitor 。自 iOS 12 起,我不知道 Reachability 有什么好的用途。)

您可以知道請求是否真正成功的唯一方法是嘗試發送它並查看是否收到響應。 這就是為什么不建議您在發送請求之前測試 Reachability 的原因。 只需發送請求並在出現錯誤時進行處理,因為總是有可能出現錯誤,即使 Reachability 表示您可以連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM