Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
1 / 0 / 0
Регистрация: 02.02.2016
Сообщений: 57

Передача mp3 через сокет

13.11.2017, 21:40. Показов 1939. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, передаю mp3 файл через сокет , файл передается нормально ,однако размер скаченного файла примерно в 2 раза меньше и при воспроизведении скорость намного увеличена и есть артефакты. Так же есть ошибочки
Java
1
2
3
4
5
6
7
8
9
10
SEVERE: null
java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:210)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
    at java.io.FilterInputStream.read(FilterInputStream.java:107)
    at buummusicclient.Buummusicclient.main(Buummusicclient.java:29)
 
СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 0 секунд)
С чем это все может быть связано? Исходники
Сервер
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package buummusicserver;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.FileInputStream;
/**
 *
 * @author root
 */
public class Buummusicserver {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        byte[] byteArray = new byte[8192];
        
        try {
            ServerSocket serv = new ServerSocket(6767);
            Socket servsock = serv.accept();
            BufferedOutputStream bos = new BufferedOutputStream(servsock.getOutputStream());
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D://Music//Joyryde - Fuel Tank.mp3"));
            while(bis.read(byteArray) != -1){
                bos.write(byteArray , 0 ,bis.read(byteArray));
            }
            bis.close();
            bos.close();
        } catch (IOException ex) {
            Logger.getLogger(Buummusicserver.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        
        
    }
    
}
Клиент
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package buummusicclient;
import java.io.IOException;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
/**
 *
 * @author root
 */
public class Buummusicclient {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try {
            byte[] buffer = new byte[9574445];
            Socket client = new Socket ("127.0.0.1" , 6767);
            BufferedInputStream bis = new BufferedInputStream(client.getInputStream());
            FileOutputStream fos = new FileOutputStream("dowloaded.mp3");
            int count,total = 0;
             while ((count = bis.read(buffer)) != -1){
                total += count;
                fos.write(buffer, 0, count);
 
                if(total == 9574445){
                    break;
                }
            }
         
        } catch (IOException ex) {
            Logger.getLogger(Buummusicclient.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
}
ps Получается неплохой такой ремикс )
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.11.2017, 21:40
Ответы с готовыми решениями:

Передача массива через сокет
здравствуйте. пытался сделать так. на клиенте: try { Socket s = new Socket("192.168.0.1", 3128); ...

Одновременная передача клиенту (сокет)
Всем привет. В общем столкнулся с такой проблемой. Сервер посылает запросы клиенту, вроде как всё работает, клиент записывает в буфер...

Передача и проигрывание MP3 файла
Здравствуйте! Такая ситуация: Допустим, есть 2 компьютера. На одном - программа (Сервер) и на другом (Клиент). Необходимо, чтобы...

3
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
13.11.2017, 22:02
Лучший ответ Сообщение было отмечено kashichishi как решение

Решение

https://stackoverflow.com/ques... er-sockets
1
90 / 89 / 23
Регистрация: 08.07.2014
Сообщений: 548
14.11.2017, 07:47
Цитата Сообщение от kashichishi Посмотреть сообщение
byte[] buffer = new byte[9574445];
Цитата Сообщение от kashichishi Посмотреть сообщение
if(total == 9574445){
break;
}
Неожиданно
0
1 / 0 / 0
Регистрация: 02.02.2016
Сообщений: 57
19.11.2017, 13:13  [ТС]
Проблему решил , спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.11.2017, 13:13
Помогаю со студенческими работами здесь

Как открыть файл через сокет
Имеется программа которая запрашивает у пользователя имя и пароль и сверяется с базой данных(тестовый файл). Путь к этому текстовому...

Принять массив байт через сокет
Добрый вечер.. Есть соединение на сокетах. С сервера идут сообщения по 8 байт. Как их принимать в бесконечном потоке пока есть...

Как передать файл через сокет
здравствуйте! Выполнил сериализацию данных в файл. Теперь нужно этот файл передать серверной части программы. Для выбора файла...

Проверить закрыто ли соединение через сокет
Есть клиент-сервер на основе сокетов, сервер когда конектиться новый клиент получает от него одно сообщение и дальше принимает решение...

Передача файла через сокет
Проблема в том что файл восстанавливаемый на клиенте открывается хорошо. На сервере же массив байтов востанавливается, но файл не...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru