Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 24
1

Пересылка больших файлов через Socket

30.07.2018, 16:56. Показов 1603. Ответов 1
Метки нет (Все метки)

Привет
Пишу клиент сервер и проблема такая
При передачи маленьких файлов все ок, файл доходит целым и слово Done успешно отправляется
но если файл большой, то он приходит битый и слово Done не доходит
подскажи пожалуйста в чем проблема может быть
метод getSizeFile корректно определяет размер файла

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
            InputStream is2 = client.getInputStream();
            OutputStream os2 = client.getOutputStream();
 
            BufferedInputStream is = new BufferedInputStream(is2);
 
            String nameFile = getNameFile(is);
            int sf = getSizeFile(is);
 
            FileOutputStream out = new FileOutputStream(nameFile);
            BufferedOutputStream os = new BufferedOutputStream(out);
 
            byte[] b = new byte[sf];
 
            is.read(b, 0, b.length);
            os.write(b, 0, b.length);
            os.flush();
 
            String a = "Done";
            os2.write(a.getBytes());
            os2.flush();
 
            System.out.println("Файл " + nameFile + " получен!");
            os.close();
            is.close();
            client.close();
Добавлено через 18 минут
скорее всего проблема в том что я пытаюсь загрузить весь файл а нужно кусками...
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2018, 16:56
Ответы с готовыми решениями:

Ошибка EOFException при передаче файлов через socket
есть серверpublic class ServerPart { JTextArea area; ServerPart(){ JFrame f = new...

Передача больших файлов используя Socket
Помогите! Как правильно организовать передачу больших файлов используя Socket. Написал сервер...

Пересылка файлов через сокеты
Пишу чат, пытаюсь разобраться. Не выходит сделать передачу файлов. Помогите... Выдает ошибку...

Пересылка struct силами Socket'ов
Доброго времени суток. Как переслать структуру по сокету, читал различные форумы, но статей я так...

1
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 24
31.07.2018, 10:57  [ТС] 2
Вот так решается проблема примерно
Но файлы передаются медленно, так как bytesRead часто присваивается длина 4... при byte[32] не очень часто
Кто нибудь знает почему так? может из за фрагментации диска?
Java
1
2
3
4
5
6
byte[] b = new byte[1042];
while (sf > 0 && ((bytesRead = is.read(b)) != -1)) {
                os.write(b, 0, bytesRead);
                sf -= bytesRead;
            }
            os.flush();
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2018, 10:57

Отправка файлов через non blocking socket
доброго времени суток. пытаюсь реализовать отправку файлов через nonblocking socket в справке по...

Передача файлов через Tcp/Ip Socket
Всем привет. Как возможно передавать файлы в размерах от 200-500 мб.

QTcpScoket гарантированная пересылка пакетов больших транзакций (2 Гб)
Привет форум :) Есть сервер на QTcpServer. Клиент и сервер обмениваются данными через...

Передача файлов через Socket. Клиент получает текст в неверной кодировке
Нужно передать файл от приложения-сервера к приложению-клиенту. На сервере используется код с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru