有人可以解释一下这两个参数之间的区别吗?


org.apache.http.params.CoreConnectionPNames.CONNECTION_TIMEOUT;
org.apache.http.params.CoreConnectionPNames.SO_TIMEOUT


根据javadocs:

CoreConnectionPNames.CONNECTION_TIMEOUT:


  确定连接之前的超时时间(以毫秒为单位)
  成立。超时值为零将被解释为无穷大
  暂停。


CoreConnectionPNames.SO_TIMEOUT:


  定义套接字超时(SO_TIMEOUT),以毫秒为单位,即
  等待数据的超时,或者换句话说,最大期限
  两个连续数据包之间的不活动状态)。


那么,对于第一个CoreConnectionPNames.CONNECTION_TIMEOUT,它是否在发送任何数据之前发生?
第二,CoreConnectionPNames.SO_TIMEOUT,是否意味着已经发送了一些数据?表示连接已成功建立。

谢谢。

最佳答案

它会在发送任何数据之前发生吗?


是的,它确实。


  这是否意味着已经发送了一些数据?


在HTTP级别,不,不是。 (TCP / IP或SSL可能会有所不同)


  表示连接已成功建立。


是的,它确实。

10-05 23:17