Я пытаюсь отправить несколько изображений один за другим автоматически с моего телефона Android на сервер (ПК) каждый раз, когда я снимаю изображение с камеры.Получение нескольких изображений через сокет TCP с использованием InputStream
Проблема заключается в том, что функция read()
блокирует только первый раз. Итак, технически только одно изображение получено и показано отлично. Но после этого, когда is.read()
возвращает -1
, эта функция не блокирует, и несколько изображений не могут получить.
Код прост для сервера
while (true) {
InputStream is = null;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
is = sock.getInputStream();
if (is != null)
System.out.println("is not null");
int bufferSize = sock.getReceiveBufferSize();
byte[] bytes = new byte[bufferSize];
while ((count = is.read(bytes)) > 0)
{
if (filewritecheck == true)
{
fos = new FileOutputStream("D:\\fypimages\\image" + imgNum + ".jpeg");
bos = new BufferedOutputStream(fos);
imgNum++;
filewritecheck = false;
}
bos.write(bytes, 0, count);
System.out.println("count: " + count);
}
if (count <= 0 && bos != null) {
filewritecheck = true;
bos.flush();
bos.close();
fos.close();
}
}
Выходной сигнал после того, как изображение, будет получен в
is not null
is not null
is not null
is not null
is not null
is not null
is not null
is not null
...
...
...
...
Любая помощь будет высоко оценен.
Любая подсказка кому-нибудь? – Saaram