java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)我的解决办法

首先分析一下,这个是由于在传送中客户端或者服务端一方在传送进行时关闭连接,就会出现这样的报错,我网上搜了一些解决办法,得到了这样的一个寻找问题根源的方向。

剩下的就是自己分析一下了。

我app中的一个小任务是从服务器端获取一些数据到本地进行处理。

有如下代码:

Response response = new OkHttpClient().newCall(request).execute();
Reader reader = response.body().charStream();
MyOrders.orderInformations = gson.fromJson(reader,
        new TypeToken<List<Map<String,String>>>() {
        }.getType());
原先的报错是在第三段这里,直接放reader过去会报错,一开始并不太知道这是什么情况。

这个报错并不是一开始就存在,而是正常使用了一段时间之后出现的。(这个时候其实服务器上面要获取回来的数据量有点大了)

后来转念一想,这个错误是在传输进行时出现的,那么就说明他是能建立传输,而且很有可能是已经传输回来一部分数据了。

然后我就把服务器上面的数据量弄少,发现正常传输,再也不报错了。

为了看看read到多少数据的时候会爆炸,我加了一个计数,并且把每个字节都打印了出来。

发现传输到2645个字符的时候服务器端的连接就中断了,然后理所当然报了错。

暂时没有弄懂为什么到2645个字符服务器会中断,基础不牢。。。地动山摇。。。希望有大哥懂这个的可以给个指导。

还有一个现象就是,我在之前数据量比较大的时候,还是疯狂点击获取数据,偶尔能够把数据完整读下来,也不知道如何解释。。。基础不牢。。。地动山摇。。。


当然,这仅仅是我在这种情况下遇到这个问题的分析方法,并不是所有情况都适用,如果有措辞不当处,还请多指教。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值