【发布时间】:2016-01-12 08:27:18
【问题描述】:
为了减少延迟,此类可能会为多个请求/响应对重用相同的底层 Socket。因此,HTTP 连接的打开时间可能会超过必要的时间。
这意味着一个 TCP 连接可能由多个 HttpURLConnection 实例共享。(另请参阅here)。
假设我有两个独立的后台线程,它们通过两个不同的HttpURLConnection 向同一主机 发送请求。如果两个连接共享底层 Socket,服务器返回的数据将被两个线程同时读取,导致数据损坏。
但是,当我测试我的 Android 应用时,我从未遇到过这个问题。那么这是否意味着 Socket 永远不会共享或者我错过了什么?
【问题讨论】: