【发布时间】:2011-09-25 15:54:06
【问题描述】:
我正在尝试对 SOCKS 代理列表进行排序,并找出哪些代理的连接和读取时间小于 1000 毫秒,这是我的代码
for(Proxy p : proxies) {
try {
URLConnection testConnection = testUrl.openConnection(p);
testConnection.setConnectTimeout(TIMEOUT_VALUE);
testConnection.setReadTimeout(TIMEOUT_VALUE);
success.add(p);
} catch(SocketTimeoutException ste) {
System.out.println("Proxy " + p.address().toString() + " timed out.");
}
}
但是他们每个人都通过了测试,即使我做了TIMEOUT_VALUE = 1; 我做错了什么?感谢您的帮助。
【问题讨论】:
-
你能添加这一行,看看它返回的值是多少?
testConnection.getConnectTimeout() -
我的意思是在设置超时值后添加。
-
@CoolBeans 它只是打印出 1000,就像它应该的那样。
-
我在java docs 上看到了这个此方法的一些非标准实现可能会忽略指定的超时。我不确定这些 non-standard 实现是什么。