Исключение сокета при загрузке большого файла

1

Моему приложению нужно загружать большие файлы. Через некоторое время я получаю

java.net.SocketException: Connection timed out

Я верю, потому что устройство будет спать или wifi.

Так как я должен справиться с этим? Я хочу, чтобы этот пользователь мог загрузить большой файл независимо от того, сколько времени он займет.

Загрузка файла выполняется с использованием:

HttpURLConnection con =  (HttpURLConnection) new URL(uriToFile).openConnection();
con.connect();

FileOutputStream fileOutput = new FileOutputStream(file);
InputStream inputStream = con.getInputStream();

byte[] buffer = new byte[1024];
int bufferLength = 0;

while ((bufferLength = inputStream.read(buffer)) > 0) {

    fileOutput.write(buffer, 0, bufferLength);

}

fileOutput.close();

Благодарю.

  • 3
    Трудно помочь вам, не увидев ни одного вашего кода.
  • 1
    Вы можете попробовать увеличить socket.setSoTimeout(nnnn);
Показать ещё 5 комментариев
Теги:
socketexception

1 ответ

0

Вы не можете справиться с этим, кроме как путем повторного подключения. Вы можете уменьшить время ожидания соединения по умолчанию около 75 секунд, но вы не можете его поднять.

  • 0
    Почему мне нужно уменьшить время ожидания? И как это сделать, если я загружаю файл с помощью HttpURLConnection?
  • 0
    @ Streetboy Поскольку я не говорил, что вам «нужно уменьшить время ожидания», у меня нет ответа. Спросите кого-то, кто считает это хорошей идеей. Я не.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню