1

到達可能性フレームワークについて調べましたが、ホストの定義が到達可能である理由が「データパケットが...ローカルデバイスを離れることができるとき」である理由をまだ混乱しています。

到達可能性が「はい」を返した場合、ソケット接続を試行する必要があるようで、実際に接続するまで、ホストが稼働していることはわかりません。Reachability が Ping を使用して、ホストが実際に稼働しているかどうかをより正確に把握しないのはなぜですか? そして、そもそもこのフレームワークの必要性は何ですか?

私の推測ではこの 2 つですが、Reachability フレームワークを使用する他の理由を知っている人がいたら教えてください。

1) 到達可能性は、インターネットが復旧したときに即座に通知するコールバックを提供します。これが発生すると、ソケット接続をすぐに試行できます。ただし、アプリケーションの 99% では、数秒ごとにソケット接続を試行するか、最悪の場合、ユーザーが特定のアクションを実行したときに接続を試行するだけで問題ないようです。確かに、これは理想的な解決策ではありませんが、この理由で到達可能性フレームワークが本当に必要になる理由がわかりません。

2) サーバーへのソケット接続が確立されている場合でも、ネットワークが G3/WiFi であるかどうかについて、到達可能性から重要な情報が得られます。ネットワークの種類に応じて動作を最適化できるため、到達可能性が本当に必要になるのはこれだけだと思います。

4

1 に答える 1

1

到達可能性は実際には非常に便利です。ケース (1) を考えると、ネットワークのアップ イベントとダウン イベントの両方で通知が得られることを忘れています。つまり、ネットワーク接続の切断などのイベントを処理するようにコールバックを設定できます (これは WiFi と 3G の両方で必要以上に発生します)。

さらに、ソケットを使用した接続のテストはそれほど単純ではありません。ソケット操作は、既定ではブロックであり、非同期操作 (またはスレッド) を使用できますが、そのためにはコードを記述する必要があります。ネットワークがダウンしているときに DNS を試すなどの問題は言うまでもありません。フレームワークを使用して到達可能性の目標を設定することで、このようなあらゆる種類の問題を自分で処理する必要性を軽減し、そのコールバックを待つだけで済みます。

お役に立てれば、

TG

于 2012-08-24T13:00:29.657 に答える