Posted on 2010-04-13 19:00 
leekiang 阅读(1757) 
评论(0)  编辑  收藏  所属分类: 
java 、
io,tcp 
			
			
		 
		Java中可以使用HttpURLConnection来请求WEB资源。
HttpURLConnection对象不能直接构造,需要通过
URL.openConnection()来获得HttpURLConnection对象,示例代码如下:
String urlStr= 
www.ttt.org;
URL url = new 
URL(urlStr);
HttpURLConnection conn = 
(HttpURLConnection)url.openConnection();
 
HttpURLConnection是基于HTTP协议的,其底层通过socket通信实
现。如果不设置超时(timeout),在网络异常的情况下,可能会导致程序僵死而不继续往下执行。可以通过以下两个语句来设置相应的超时:
System.setProperty("sun.net.client.defaultConnectTimeout",
 超时毫秒数字符串);
System.setProperty("sun.net.client.defaultReadTimeout", 
超时毫秒数字符串);
其中: 
sun.net.client.defaultConnectTimeout:连接主机的超时时间(单位:毫秒)
sun.net.client.defaultReadTimeout:
从主机读取数据的超时时间(单位:毫秒) 
例如:
System.setProperty("sun.net.client.defaultConnectTimeout",
 "30000");
System.setProperty("sun.net.client.defaultReadTimeout", 
"30000"); 
JDK 
1.5以前的版本,只能通过设置这两个系统属性来控制网络超时。在1.5中,还可以使用HttpURLConnection的父类
URLConnection的以下两个方法:
setConnectTimeout:设置连接主机超时(单位:毫秒)
setReadTimeout:
设置从主机读取数据超时(单位:毫秒) 
例如:
HttpURLConnection urlCon = 
(HttpURLConnection)url.openConnection();
urlCon.setConnectTimeout(30000);
urlCon.setReadTimeout(30000); 
来源:http://www.xd-tech.com.cn/blog/article.asp?id=37
另外可参考java中处理http连接超时的方法
JDK中的URLConnection参数详解
linux下设置connect连接超时的方法
java socket 用法(一)
Linux,可以修改/proc/sys/net/ipv4/tcp_syn_retries的值,缺省是72,大约5分钟左右,改小点时间就短些