CoreConnectionPNames.SO_TIMEOUT和CoreConnectionPNames.CONNECTION_TIMEOUT之间有什么区别?

时间:2013-01-14 09:58:21

标签: java timeout apache-httpclient-4.x resttemplate

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

  1. org.apache.http.params.CoreConnectionPNames.CONNECTION_TIMEOUT;
  2. org.apache.http.params.CoreConnectionPNames.SO_TIMEOUT
  3. 根据javadocs:

    CoreConnectionPNames.CONNECTION_TIMEOUT:

      

    确定连接之前的超时(以毫秒为单位)   成立。超时值为零被解释为无限   超时。

    CoreConnectionPNames.SO_TIMEOUT:

      

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

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

    感谢。

1 个答案:

答案 0 :(得分:0)

  

是否在发送任何数据之前发生了?

是的,确实如此。

  

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

在HTTP级别上,不,它没有。 (TCP / IP或SSL可能是一个不同的故事)

  

表示已成功建立连接。

是的,确实如此。