Java: ¿Cuál es la diferencia entre estos dos tiempos de espera de configuración?
Lo siguiente es de la documentación oficial. Para aprender a programar, simplemente lea la documentación.
setSoTimeout
public void setSoTimeout(int timeout)
lanza SocketException
Habilitar/deshabilitar SO_TIMEOUT con el valor de tiempo de espera especificado en milisegundos. Cuando esta opción se establece en un valor de tiempo de espera distinto de cero, llamar a
read() en el InputStream asociado con este Socket solo se bloqueará durante este período de tiempo. Si se excede el valor del tiempo de espera, se generará una excepción java.net.SocketTimeoutException, aunque el Socket
sigue siendo válido. La opción debe estar habilitada antes de ingresar a la operación de bloqueo para que surta efecto. El valor del tiempo de espera debe ser un número > 0. Un valor de tiempo de espera de 0 se interpreta como un valor de tiempo de espera infinito.
Parámetros:
tiempo de espera: el valor de tiempo de espera especificado en milisegundos.
Lanza:
SocketException:
Si hay un error con el protocolo subyacente, como un error de TCP.
conectar
conexión nula pública (punto final de SocketAddress,
tiempo de espera int)
lanza IOException
Lanza esto El socket está conectado al servidor y se especifica un valor de tiempo de espera. Un valor de tiempo de espera de cero se interpreta como un tiempo de espera infinito. La conexión se bloquea hasta que se establece o se produce un error.
Parámetros:
punto final - SocketAddress
timeout: el valor de tiempo de espera a utilizar (en milisegundos).
Lanza:
IOException - si ocurre un error durante la conexión
SocketTimeoutException
- si el tiempo de espera expira antes de conectarse
p>
IllegalBlockingModeException
- si este socket tiene un canal asociado y el canal está en modo sin bloqueo
IllegalArgumentException
- si el el punto final es nulo O este socket no admite la subclase SocketAddress