私は、(現在) GET リクエストをリモート サーバーに送信する役割を担う Android/Java アプリのコンポーネントに取り組んでいます。私のコードはこのサンプルに基づいています:
私はURLConnectionクラスのメソッド setConnectTimeout() と setReadTimeout() を好意的に利用しましたが、それらの影響を完全に理解していないため、両方に 10 秒の値を指定するとします。
- 接続を開始できなくなってから 10 秒後にあきらめる必要があるということですか? 接続が開いていてアクティブな場合、タイムアウトすることはありませんか?
- または、電話の瞬間から 10 秒後にあきらめますか? 接続が実際に 2 秒後に正常に開始され、次の 8 秒間にすべてのデータ転送を完了できなかったとしても?
- それとも別の別のケースですか?
また、接続試行のタイムアウトの概念は明確ですが、受信タイムアウトはどのように発生するのでしょうか? 私が知る限り、OS は、コードで呼び出しを行う前にデータが実際に送信される可能性があるため、受信を呼び出す前であっても、送信されたデータを自動的に受信してローカル バッファーに保持します。 OS は、データが失われないことを保証するために行うことを行います。
受信のタイムアウト値は、OS が処理するために OS に渡されますか?
よろしくお願いします。質問で自分の役割をうまく果たしたことを願っています。