我用
URLConnection urlConn = theURL.openConnection();
// set connect timeout.
urlConn.setConnectTimeout(5000);
// set read timeout.
urlConn.setReadTimeout(5000);
在我的应用程序。连接时间为一个超时,读取开始之前为一个超时。是否有简单的方法使实际的数据传输过程超时?
我有线程从非常慢的主机读取数据,或者数据源非常大,导致传输时间过长。我该如何限制这个时间?
您可以尝试使用Thread.join(int) -> http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Thread.html#join(long)。然后检查线程的状态,一旦完成。
据我所知,我认为文档支持这一点,readTimeout
从读取InputStream开始时开始-因此这将超时为长时间传输。
编辑:文档说:
非零值指定从输入流读取时的超时时间当建立到资源的连接时
这可能写得不是很好,但听起来好像这确实与转移时间有关。