java.net.SocketException:recvfrom failed:ECONNRESET(由peer重置连接)有时会发生

时间:2013-05-11 04:25:20

标签: android serversocket

我已经搜索了很多这个例外情况,但是我没有找到任何可以解决我问题的相关答案, 我正在使用HttpURLConnection从网址获取xml的响应,它工作正常,但有时我得到这个例外:
java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer), 我使用了以下代码,url1是我的url,它提供了一个xml。

url=new URL(url1);
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoInput(true);  
urlConnection.connect();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String result, line = reader.readLine();
result = line;
           while((line=reader.readLine())!=null)
                       {
               result+=line;
           }

           System.out.println("Result: "+result);

4 个答案:

答案 0 :(得分:10)

尝试put urlConnection.setRequestProperty(“connection”,“close”);在连接之前。这将禁用默认启用的保持活动属性

答案 1 :(得分:2)

尝试与我的服务器通话时遇到了类似的问题。我仍然不确定发生了什么,但我在搜索中发现this来解决问题:

  好吧,答案是这是服务器的错 - 它必须关闭   每次请求后连接。它可能是android保持池   连接和使用旧的或类似的东西。无论如何,   现在它有效。

阅读此帖后,我杀死了服务器上运行的apache实例,让手机看到连接被拒绝,然后重新启动apache。之后,问题就消失了。希望这有帮助!

答案 2 :(得分:0)

在我的情况下,我从 http 更改为 https ,一切正常

答案 3 :(得分:-1)

打开您正在使用的浏览器并尝试将urland粘贴到您的MOBILE DEVICE浏览器中,如果您仍然遇到相同的错误或者可能是连接被拒绝,这意味着您的MOBILE和您运行的服务器上运行的PC没有打开同样的计划。