簡體   English   中英

java.net.SocketException:從流讀取時重置連接

[英]java.net.SocketException: Connection reset while reading from a stream

我已經開發了一些可以訪問URL並從中讀取流的代碼,但是當我嘗試獲取流時,我得到了java.net.SocketException。這是堆棧跟蹤:

java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:168)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:652)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1049)
    at utils.AljazemArabicWordsGrabber.grab(AljazemArabicWordsGrabber.java:46)
    at utils.TranslatorThread.run(TranslatorThread.java:39)

這是導致異常的代碼:

public String[] grab(EnglishWord englishWord) {

    try {
        aljazemURL = new URL(urlLink + englishWord.getLemma());
        connection = aljazemURL.openConnection();

        //connection.connect();
    //    System.out.println("connection:" + connection);
      ////  stream = connection.getInputStream();


    //    reader = new InputStreamReader(stream);
        in = new BufferedReader(new InputStreamReader(connection.getInputStream())); // the exception occurs here..


        while ((decodedString = in.readLine()) != null) {
            if (decodedString.contains("<div class=\"default_to_trans_ar\" style=\"display:block\">")) {
                decodedString = decodedString.replace("<div class=\"default_to_trans_ar\" style=\"display:block\">", "");
                decodedString = decodedString.replace("</div>", "");
                slicedWords = decodedString.split(",");
                for (String slice : slicedWords) {
                    System.out.println(slice);
                }
                //  System.out.println(decodedString);
            }

        }

        in.close();

    } catch (Exception e) {
        e.printStackTrace();
    }

    return slicedWords;
}

您確定GPS正在發送線路(以新線路結尾)嗎?

如果沒有,我會反復使用read()來獲取它發送的所有數據(直到到達EOF為止)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM