java.net.SocketException: Connection reset 解决方法


该java异常在客户端和服务器端都有可能发生,引起该异常的原因有两个:

1,如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。

2,一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的。


刚开始以为单纯的设置超时时长就可以,但报错依旧

所以就加上同步,再也不报错

public synchronized String downloadFromUrl(String url, String path) {
		// String filePath = "rootDir//date//file_pdf//";
//		String path_doc = "/file_pdf/";
		String filePath = rootDir + Main.conf.getString("path_doc") + path;
		File f = new File(filePath);
		try {
			logger.debug("<><>url<><>" + url);
			URL httpurl = new URL(url);
			FileUtils.copyURLToFile(httpurl, f);
//			FileUtils.copyURLToFile(httpurl, f,30000,10000);//连接超时,下载超时
		} catch (Exception e) {
			logger.error("downloadFromUrl-err-url:" + url, e);
		}
		return f.getPath();
	}


你可能感兴趣的:(异常-报错-问题-处理)