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();
	}


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是由于 "java.net.socketexception: connection reset" 引起的错误,意味着在建立网络连接时,连接被重置了。这可能是由于目标主机未正确响应、网络故障或其他原因造成的。 ### 回答2: 这个错误提示是Java中的一个异常,表示连接被重置。通常,这个错误是由于在客户端和服务器之间的网络连接出现了问题导致的。 这个错误可能有几个常见的原因: 1.服务器端关闭了连接:当客户端尝试与服务器建立连接时,如果服务器关闭了连接,那么客户端在尝试发送或接收数据时就会出现该异常。 2.网路连接出现问题:这个错误也可能是由于网络问题导致的,比如网络不稳定、信号弱、丢包等情况会导致连接重置。 3.超时:如果客户端和服务器之间的连接超过了预设的时间限制,那么连接就会被自动断开,从而引发该异常。 为了解决这个问题,可以尝试以下几种方法: 1.检查服务器端是否正常运行,并确保服务器端口是否正确设置。 2.检查网络连接是否稳定,并尝试重启网络设备或更换网络环境。 3.检查代码中是否存在超时设置,如果有,可以适当调整超时时间,以便给服务器足够的响应时间。 4.在代码中添加异常处理机制,以防止连接重置异常导致程序崩溃。 总之,"caused by: java.net.socketexception: connection reset" 错误通常是由于网络连接问题导致的异常,我们可以检查服务器端和网络环境,以及代码中的设置来解决这个问题。 ### 回答3: 这个错误是由于Java程序的网络连接被重置而引起的。 出现这个错误通常有以下几个可能的原因: 1. 服务器端关闭了与客户端的连接:当服务器端关闭连接时,客户端可能仍然尝试与服务器进行通信,但由于连接已经关闭,所以会抛出该异常。 2. 客户端或服务器出现网络问题:这个错误也可能是由于网络问题引起的,比如客户端或服务器出现了连接中断、网络异常等情况,导致连接被重置。 3. 客户端或服务器的代码存在问题:有时候,代码中可能存在错误,导致连接被重置。例如,在客户端和服务器的代码中可能存在逻辑错误、线程安全问题等,从而导致连接被重置。 要解决这个问题,可以采取以下几个方法: 1. 检查服务器端是否正常运行,并确保服务器未意外关闭连接。 2. 检查网络连接是否存在问题,可以尝试重新连接网络或者使用其他网络进行测试。 3. 检查客户端和服务器端的代码,查找是否存在错误,并修复代码中的问题。 4. 如果以上方法都无法解决问题,可以尝试在代码中添加异常处理机制,以捕获并处理该异常,比如可以进行重试操作或向用户显示错误提示信息。 总之,Caused by: java.net.SocketException: Connection reset是由于网络连接被重置而引起的异常,解决方法包括检查服务器连接状态、检查网络连接、修复代码问题以及添加异常处理机制等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值