Разъем Android с Java по WiFifreezing при отправке файла - PullRequest
0 голосов
/ 29 июня 2011

Я делаю сервер с Java и клиент с Android.Все работает нормально, но когда я пытаюсь получить файл на Android, ввод-вывод зависает.Я пытался сделать то же самое с тестовым приложением Java, и работает нормально.

Мой код на стороне клиента:

                int bytesRead;
                long current = 0;

                byte [] mybytearray = new byte[InfoPrograma.BUFFER_LENGTH];

                //Receive file
                InputStream is = socket.getInputStream();
                BufferedOutputStream bos = new BufferedOutputStream(
                    new FileOutputStream(file)
                );

                while (
                    (bytesRead = is.read(
                        mybytearray, 
                        0, 
                        mybytearray.length
                    )
                ) >= 0) {
                    current += bytesRead;
                    bos.write(mybytearray, 0 , bytesRead);
                }

                bos.flush();
                bos.close();

Код на стороне сервера:

                    File file = new File(fileStr);

                    byte[] buffer = new byte[InfoPrograma.BUFFER_LENGTH];

                    BufferedInputStream bis = new BufferedInputStream(
                        new FileInputStream(file)
                    );

                    OutputStream os = socket.getOutputStream();

                    long tmp = 0;

                    while ((count = bis.read(buffer)) > 0) {
                        os.write(buffer, 0, count);
                        tmp += count;

                        System.out.println(tmp);
                    }

                    os.flush();

BUFFER_LENGHT - 2000. Если вам нужно что-то еще, попросите об этом, пожалуйста.

Спасибо.

1 Ответ

0 голосов
/ 01 июля 2011

Готово. Единственный способ, который я нашел, это отправить сначала длину файла клиенту, сохранить его, а затем выполнить read (), пока (в моем коде) текущий

...