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个字符服务器会中断,基础不牢。。。地动山摇。。。希望有大哥懂这个的可以给个指导。

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


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

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页