我正在开发一个 android/java 应用程序中的组件,负责(当前)将 GET 请求发送到远程服务器。我的代码基于此示例:
我已经使用了URLConnection类中的方法 setConnectTimeout() 和 setReadTimeout()对我有利,但是我对它们的影响缺乏完全理解,现在说我为这两个方法指定了 10 秒的值:
- 这是否意味着它应该在 10 秒无法启动连接后放弃?如果连接打开并处于活动状态,则永远不会超时?
- 还是在通话后 10 秒后放弃?即使说连接实际上是在 2 秒后成功启动,并且在接下来的 8 秒内无法完成所有数据传输?
- 或者它甚至是另一个不同的情况?
此外,连接尝试超时的概念很明确,但是接收超时是如何发生的呢?因为据我所知,即使在您调用接收之前,操作系统也会自动接收发送给您的数据并将其保存在本地缓冲区中,因为数据实际上可以在您调用代码之前发送给您,因此操作系统所做的一切都是为了保证数据不会丢失。
那么我的接收超时值是否传递给操作系统以使其处理内容?
转发谢谢,我希望我在这个问题上做得很好。