recvfrom failed: ETIMEDOUT (Connection timed out)

WIFI網絡和移動網絡同時打開,在下載過程中,關閉WIFI網絡,此時系統關閉WIFI網絡同時切換到移動網絡,在此過程,出現以下異常,出現異常的語句是is.read(buffer),代碼段如下:

try{
    while ((len = is.read(buffer)) != -1) {
        if(!CommonUtils.isDownloadAvailable()) {
            Logger.v(TAG, "Download operation is unavailable, stop down.");
            break;
        }
        if(!running) {
            Logger.v(TAG, "Down is cancelled, stop down.");
            break;
        }
        offset += len;
        file.write(buffer, 0, len);
        sendMessage(DownMessage.MSG_UPDATE, len);
    }
}catch(IOException e) {
    Logger.e(TAG, "Catch IO exception when read data from input stream.", e);
    throw e;
}

Catch IO exception when read data from input stream.

java.net.SocketException: recvfrom failed: ETIMEDOUT (Connection timed out)

at libcore.io.IoBridge.maybeThrowAfterRecvfrom(IoBridge.java:542)

at libcore.io.IoBridge.recvfrom(IoBridge.java:506)

at java.net.PlainSocketImpl.read(PlainSocketImpl.java:488)

at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)

at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:240)

at java.io.BufferedInputStream.read(BufferedInputStream.java:304)

at libcore.net.http.FixedLengthInputStream.read(FixedLengthInputStream.java:45)

at java.io.BufferedInputStream.read(BufferedInputStream.java:304)

at java.io.InputStream.read(InputStream.java:163)

at com.tvie.ivideo.download.logic.DownThread.run(DownThread.java:70)

Caused by: libcore.io.ErrnoException: recvfrom failed: ETIMEDOUT (Connection timed out)

at libcore.io.Posix.recvfromBytes(Native Method)

at libcore.io.Posix.recvfrom(Posix.java:131)

at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:164)

at libcore.io.IoBridge.recvfrom(IoBridge.java:503)

... 8 more


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章