Не читается файл переданный через socket

285
01 марта 2017, 19:12

Я передаю файл-картинку програмкой на qt через интернет по сокетам:

    QFile file("/home/user/Изображения/hats.jpg");
        if(!file.open(QIODevice::ReadWrite)) { qDebug() <<"Error open file";}
        QByteArray arrfile = file.readAll();
        pClientSocket->write(arrfile);
        pClientSocket->flush();
Я принимаю файл програмкой на android:
  tc.in = client.getInputStream();
                    tc.isr = new InputStreamReader(client.getInputStream(), "UTF-8");
                    tc.br = new BufferedReader(isr);
while (true) {
                try { 
                    int bufsize = 8192;
                    byte[] buf = new byte[bufsize];
                    int rlen = tc.in.read(buf);
                    if(tc.br.ready() && rlen>-1) {
                        File dst = new File("/storage/sdcard0/Download/ggg/hats.jpg");
                        OutputStream out = new FileOutputStream(dst);
                        out.write(buf, 0, rlen);
                        while ((rlen = tc.in.read(buf)) > 0) {
                            out.write(buf, 0, rlen);
                            DebagClass.mLog("Avaiaiblerlen="+rlen);
                            DebagClass.mLog("Avaiaible="+tc.in.available());
                            DebagClass.mLog("space0");
                            File src = new File("/storage/emulated/0/Download/hats.jpg");
                            DebagClass.mLog("space src="+src.getTotalSpace());
                            DebagClass.mLog("space dest="+dst.getTotalSpace());
                        }
                        DebagClass.mLog("space20"); out.close();
                        File src = new File("/storage/emulated/0/Download/hats.jpg");
                        DebagClass.mLog("space2 src="+src.getTotalSpace());
                        DebagClass.mLog("space2 dest="+dst.getTotalSpace());
                    }

Все замечaтельно работает файлик передается, даже размеры файлов совпадают. Но вместо картинки открывается пустой экран. Еще почему то не выводится отладочное сообщение после цикла while, вроде должно выводится. Что я не делаю не так? ps Кстати BufferedReader мне нужен, только потому что там есть ready() так оно на нем зависает и не крутиться в бесконечном цикле, мне кажется что так меньше ресурсов ест, хотя может я не прав, х.з. А может из за этого, буду проверять. tc - просто обьект класса где хранятся переменные.

READ ALSO
Скрытие и показ панели навигации

Скрытие и показ панели навигации

ЗдравствуйтеСкрываю системные панели в onCreate:

236
Предупреждение с правильным кодом

Предупреждение с правильным кодом

Вывод статей происходит на двух страницах, 1 - превьюшные блоки, что и есть переход на опредстатью, а 2 - конкретная статья, где используется...

254