发布网友 发布时间:2022-04-24 07:07
共1个回答
热心网友 时间:2022-06-17 07:22
以下来自官方文档,学习编程只要看文档就可以了
setSoTimeout
public void setSoTimeout(int timeout)
throws SocketException
启用/禁用带有指定超时值的 SO_TIMEOUT,以毫秒为单位。将此选项设为非零的超时值时,在与此 Socket 关联的 InputStream 上调用
read() 将只阻塞此时间长度。如果超过超时值,将引发 java.net.SocketTimeoutException,虽然 Socket
仍旧有效。选项必须在进入阻塞操作前被启用才能生效。超时值必须是 > 0 的数。超时值为 0 被解释为无穷大超时值。
参数:
timeout - 指定的以毫秒为单位的超时值。
抛出:
SocketException -
如果底层协议出现错误,例如 TCP 错误。
connect
public void connect(SocketAddress endpoint,
int timeout)
throws IOException
将此套接字连接到服务器,并指定一个超时值。超时值零被解释为无限超时。在建立连接或者发生错误之前,连接一直处于阻塞状态。
参数:
endpoint - SocketAddress
timeout - 要使用的超时值(以毫秒为单位)。
抛出:
IOException - 如果在连接期间发生错误
SocketTimeoutException
- 如果在连接之前超时期满
IllegalBlockingModeException
- 如果此套接字具有关联的通道并且该通道处于非阻塞模式
IllegalArgumentException
- 如果端点为 null 或者此套接字不支持 SocketAddress 子类