# re: 一个关于时间间隔的问题,请大侠们帮一下忙了。急!!! 回复 更多评论
2007-01-04 22:16 by
连接时可以设置接连超时,socket.connect(SocketAddress endpoint, int timeout) ;
如果是读取内容,也可以设置超时socket.setSoTimeout(int timeout);要在读取内容前设置,jre 1.4以上都支持
我想这样可以解决你的问题吧,捕获相应的异常做相应的处理就可以了,具体可以参考jdk的文档
# re: 一个关于时间间隔的问题,请大侠们帮一下忙了。急!!! 回复 更多评论
2007-01-05 16:00 by
多谢楼上给的提示,我按照你说的设置了socket.setSoTimeout(30000);得到了我的目的。看来我有必要多研究一下socket函数了哈哈
# re: 一个关于时间间隔的问题,请大侠们帮一下忙了。急!!! 回复 更多评论
2011-11-25 11:43 by
java.net
类 Socket
java.lang.Object
java.net.Socket
直接已知子类:
SSLSocket
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()