2014-01-15 2 views
0

Из Javadoc из java.net.Socket#setSoTimeout, он говорит:Как понять SocketTimeout для http put?

Enable/disable SO_TIMEOUT with the specified timeout, in 
    milliseconds. With this option set to a non-zero timeout, 
    a read() call on the InputStream associated with this Socket 
    will block for only this amount of time. If the timeout expires, 
    a <B>java.net.SocketTimeoutException</B> is raised, though the 
    Socket is still valid. 

Для операции HTTP пут, клиент может загрузить огромный файл, что клиент всегда писал, и никогда не читает данные с сервера.

В этом случае, если я установил SocketTimeout для http-клиента, будет ли он выгружать TimeoutException во время загрузки?

ответ

0

Нет, это не так. Однако при чтении кода ответа может возникнуть исключение тайм-аута. Если партнер завершает соединение во время загрузки, он будет вызывать сброс соединения IOException с помощью одноранговой сети.