SO_TIMEOUT选项:
1,socket
setSoTimeout
public void setSoTimeout(int timeout)
throws SocketException
- 启用/禁用带有指定超时值的 SO_TIMEOUT,以毫秒为单位。将此选项设为非零的超时值时,在与此 Socket 关联的 InputStream 上调用 read() 将只阻塞此时间长度。如果超过超时值,将引发 java.net.SocketTimeoutException,虽然 Socket 仍旧有效。选项 必须在进入阻塞操作前被启用才能生效。超时值必须是 > 0 的数。超时值为 0 被解释为无穷大超时值。
-
-
参数:
-
timeout- 指定的以毫秒为单位的超时值。
抛出:
-
SocketException- 如果底层协议出现错误,例如 TCP 错误。
从以下版本开始:
- JDK 1.1 另请参见:
-
getSoTimeout()
-
setSoTimeout
public void setSoTimeout(int timeout)
throws SocketException
- 通过指定超时值启用/禁用 SO_TIMEOUT,以毫秒为单位。将此选项设为非零的超时值时,对此 ServerSocket 调用 accept() 将只阻塞此时间长度。如果超过超时值,将引发 java.net.SocketTimeoutException,虽然 ServerSocket 仍旧有效。选项 必须在进入阻塞操作前被启用才能生效。超时值必须是 > 0 的数。超时值为 0 被解释为无穷大超时值。
-
-
参数:
-
timeout- 指定的超时(以毫秒为单位)
抛出:
-
SocketException- 如果在底层协议中存在错误,如 TCP 错误。
从以下版本开始:
- JDK1.1 另请参见:
-
getSoTimeout()
-
本文深入探讨了SO_TIMEOUT选项在Java中的应用,包括如何使用socket和serverSocket来设置超时时间,以及其在服务器端接受客户端请求时的作用。详细解释了超时设置的原理、参数意义和可能抛出的异常。
1万+

被折叠的 条评论
为什么被折叠?



