Бесконечное время при чтении данных из потока данных
Я передаю файл изображения из серверного сокета в клиентский сокет во время записи байта на аутсорсинг: я закрываю поток после записи целых байтовых данных в поток, затем он работает нормально, но закрывает сокет. Поэтому для предотвращения проблемы закрытия сокета я не закрываю выходной поток со стороны сервера, а затем пока цикл бесконечно работает на стороне клиента во время чтения из inputtream.
Отправка файла из кода сервера ниже
byte buf[] = new byte[1024];
int len;
try {
while ((len = inputStream.read(buf)) != -1) {
out.write(buf, 0, len);
}
out.flush();
// out.close();
inputStream.close();
} catch (IOException e) {
Log.d(TAG, e.toString());
return false;
}
данные чтения кода на стороне клиента
byte buf[] = new byte[1024];
int len;
try {
Log.e(TAG, "Size of image on client side" + inputStream.readInt());
while ((len = inputStream.read(buf)) != -1) {
Log.e(TAG, buf + "");
out.write(buf, 0, len);
}
} catch (IOException e) {
Log.d(TAG, e.toString());
return false;
}
Поэтому я должен использовать любой разделитель, чтобы остановить цикл while, потому что я понял, что если я не закрою outtream от сервера, то время пока не встретится с условием -1 .
Так что любая помощь будет оценена.