Audio Stream läuft auf :connection abort: socket write error

Muli

Mitglied
Hallo,

ich habe ein Problem, bei dem mir leider keine Lösung einfällt. Google lieferte bis dato auch keine Antworten die mir weiterhelfen konnten. Deshalb versuche ich es hier:


Folgende Konstellation :

1. einen Lauscher (soll Audio Stream empfangen und abspielen)
2. einen Sender (liest das Mikro aus und sendet einen Audio Stream an den Empfänger)

Problem: nach ca. 2-4 Sekunden bricht der Stream einfach ab mit folgender Exception (Sender):

;(java.net.SocketException: Software caused connection abort: socket write error


Die entsprechenden Quellcodeabschnitte sehen wie folgt aus:

Lauscher:
Java:
public class Lauscher extends Thread {
    int port;
    private boolean runs=false;
    public Lauscher(int port) {
        this.port = port;
    }

    public void run() {
        try {
            System.out.println("Starte Voice Server auf : " + port);
            ServerSocket srvSock = new ServerSocket(port);
            while (true) {
                runs=true;
                Socket mySock = srvSock.accept();
                if (srvSock.isBound())
                    System.out.println("Connected");

                lauscher(mySock);
                mySock.close();
            }
        } catch (Exception e) {
            runs=false;
            System.out.println("Ferhler Voice Server :" + e);
        }
    }

    public boolean isRunning(){
        return runs;
    }
    
    private void lauscher(Socket mySock) {
        SourceDataLine line = null;
        try {
            AudioFormat audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100.0F, 6, 2, 4, 44100.0F, false);
            byte buf[] = new byte[1024];

            DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
            line = (SourceDataLine) AudioSystem.getLine(info);

            line.open(audioFormat);
            int cnt = 0;

            while (true) {
                DataInputStream in = new DataInputStream(mySock.getInputStream());
                in.read(buf, 0, 1024);
                if (in.readInt() == 0 | buf.equals(null) | !mySock.isConnected() | mySock.isClosed()) {
                    System.out.println("no data read");
                    break;
                } else {
                    line.start();
                    line.write(buf, 0, 1024);
                    cnt++;
                }
            }
            line.close();
        } catch (Exception e) {
            if (line != null) {
                line.flush();
                line.close();
            }
        }
    }


Sender:
Java:
public class Sender extends Thread {
    private boolean talk = false;
    private String host;

    public Sender(String host) {
        this.host = host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public void ende() {
        talk = false;
    }

    public void run() {
        talk = true;
        try {
            AudioFormat audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100.0F, 16, 2, 4, 44100.0F, false);
            DataLine.Info info = new DataLine.Info(TargetDataLine.class, audioFormat);

            TargetDataLine tdl = (TargetDataLine) AudioSystem.getLine(info);
            AudioInputStream ais = new AudioInputStream(tdl);

          
            int voice_port =2000;

            System.out.println("Verbinde : " + host + ":" + voice_port);
            Socket mySock = new Socket(host, voice_port);
            DataOutputStream out = new DataOutputStream(mySock.getOutputStream());

            tdl.open(audioFormat);
            tdl.start();


            byte[] buf = new byte[1024];  


            int cnt = 0;
            while (talk) {
                int bytesIn = tdl.read(buf, 0, 1024);
                out.write(buf, 0, bytesIn);
                out.flush();
                cnt++;
            }

            out.write(0);
            out.close();

            tdl.stop();
            tdl.close();

            mySock.close();
        } catch (LineUnavailableException err) {
            System.out.println(err.getMessage());
        } catch (IOException e) {
            System.out.println(">" + e);

        }
    }
}

Über die Variable talk wollte ich eigentlich den Stream abbrechen, leider bricht er schon vorher ab und ich habe keine Ahnung warum das der Fall sein könnte.

Ich bedank mich schon mal im Voraus für eventuelle Tips oder Hinweise.

LG,
Muli
 

Muli

Mitglied
Hallo,

es hat sich erledigt ... einfach mal ne Pause machen - Dann fallen einem Dinge auf, die man Wochen lang übersehen hat.

Für alle die es interessiert - Der Fehler liegt hier:

Java:
[...]
while (true) {
                DataInputStream in = new DataInputStream(mySock.getInputStream());
[...]


es muss natürlich lauten:


Java:
[...]
     DataInputStream in = new DataInputStream(mySock.getInputStream());
while (true) {
           
[...]


LG,
Muli
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Audio Datei unter Bedingungen ausführen Java Basics - Anfänger-Themen 19
R Audio kann nur zum Teil gestoppt werden Java Basics - Anfänger-Themen 1
volcanos sun.audio has been removed from Java since JDK 9 Java Basics - Anfänger-Themen 2
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
H Audio in Java Java Basics - Anfänger-Themen 3
J Sharing Audio input Java Basics - Anfänger-Themen 6
S Hilfe bei Audio und zwischenspeicher Java Basics - Anfänger-Themen 5
P Audio Datei abspielen Java Basics - Anfänger-Themen 18
M Audio + Timer Java Basics - Anfänger-Themen 12
S Input/Output audio in Programm einbinden Java Basics - Anfänger-Themen 17
H audio abspielen Java Basics - Anfänger-Themen 19
M Volume beim Abspielen von Audio Dateien Java Basics - Anfänger-Themen 2
D audio wiedergabe? Java Basics - Anfänger-Themen 11
X Audio über Mikrofon einlesen Java Basics - Anfänger-Themen 4
S Java Sound mit 24 bit/96 kHz Audio? Java Basics - Anfänger-Themen 12
X Audio: Abspielen eines OutputStreams Java Basics - Anfänger-Themen 4
W Dauer einer Audio-Datei Java Basics - Anfänger-Themen 2
L Audio-Clip rauscht nur Java Basics - Anfänger-Themen 5
G Audio wiedergeben Java Basics - Anfänger-Themen 10
B Audio Signale aufnehmen & Frequenzen mit Amplitude anzei Java Basics - Anfänger-Themen 2
J Audio capturen und über's Netzwerk streamen? Java Basics - Anfänger-Themen 2
M Audio Files mit Base64 De-/Endcodieren Java Basics - Anfänger-Themen 5
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
W Stream und LocalDate Java Basics - Anfänger-Themen 15
M Stream mit den ersten n natürlichen Zahlen Java Basics - Anfänger-Themen 4
berserkerdq2 Wo ist der SInn, dass man den Stream, den ich zum Schreiben nutze, outputstream nenne? Java Basics - Anfänger-Themen 5
berserkerdq2 Wann soll ich den Stream schließen, wenn ich das in einer Methode habe? Java Basics - Anfänger-Themen 8
K Erste Schritte Stream-Aufruf vereinfachen Java Basics - Anfänger-Themen 3
I Datei als Stream aus Ressource laden? Java Basics - Anfänger-Themen 2
O Alternative zu Stream.forEach() Java Basics - Anfänger-Themen 6
Dimax stream in string[] speichern Java Basics - Anfänger-Themen 6
S Java Stream API Java Basics - Anfänger-Themen 6
A Stream Java Basics - Anfänger-Themen 14
N String N-Gramme mit Stream erstellen Java Basics - Anfänger-Themen 7
T Buffered Stream leert Txt File Java Basics - Anfänger-Themen 3
A Textdatei mit stream einlesen Java Basics - Anfänger-Themen 2
B Text-Datei nur in Stream speichern und dann ausgeben Java Basics - Anfänger-Themen 3
J Gefilterten Stream über die Konsole ausgeben Java Basics - Anfänger-Themen 1
J Count und Copy in Stream<Path> Java Basics - Anfänger-Themen 11
W for Schleife in allgemeingültiges Konstrukt aus Stream und Lambdas Java Basics - Anfänger-Themen 6
W Stream Array List - Frage Java Basics - Anfänger-Themen 5
G refactoring mit stream Java Basics - Anfänger-Themen 27
P Java Verketten von Stream - Bedeutung der Anweisungen? Java Basics - Anfänger-Themen 3
nightsky_ Methoden (Stream) Collectors.toMap() Java Basics - Anfänger-Themen 2
W HTTP-Stream auf Ajax umbauen Java Basics - Anfänger-Themen 7
elischa Client-Server IO und Stream Steuerung ? Java Basics - Anfänger-Themen 2
N Eigene Stream Methoden implementieren Java Basics - Anfänger-Themen 3
M Panel erstellen, welches ein Control erhält. Ausgabe soll über einen Stream erfolgen. Java Basics - Anfänger-Themen 0
E Stream closed - Obwohl nicht manuell geschlossen! Java Basics - Anfänger-Themen 0
N Java.io.ioexception: Stream closed Java Basics - Anfänger-Themen 2
P Wann Byte-Stream und wann Character-Stream? Java Basics - Anfänger-Themen 11
S Input/Output nullpointerException beim schliessen von stream Java Basics - Anfänger-Themen 3
A Integer aus Stream to Double Java Basics - Anfänger-Themen 7
P Java Stream, wann welche Stream verwenden? Java Basics - Anfänger-Themen 3
M Java Stream?! Java Basics - Anfänger-Themen 8
S Input/Output Data-Input/Output-Stream Java Basics - Anfänger-Themen 2
V Jar-Datei von Byte-Array oder Stream laden? Java Basics - Anfänger-Themen 9
J Input/Output Auf effiziente Weise einen Stream auszulesen Java Basics - Anfänger-Themen 5
M Stream close Java Basics - Anfänger-Themen 6
A Prüfen ob Datei geöffnet ist bzw Stream finden Java Basics - Anfänger-Themen 2
H exception "java.io.IOException: Stream closed" Java Basics - Anfänger-Themen 10
Burny91 File.delete(file) geht nicht-Offener Stream aber WO? Java Basics - Anfänger-Themen 4
H Fehler-Stream grafisch umsetzen Java Basics - Anfänger-Themen 4
H Datentypen Byte-Array aus Stream lesen Java Basics - Anfänger-Themen 3
S Fehler beim Speichern von MP3-Stream Java Basics - Anfänger-Themen 6
bambi0815 Text Datei Stream to Char[][] Java Basics - Anfänger-Themen 7
D JSP: IOException: Stream closed nach dispatchter.forward(..) Java Basics - Anfänger-Themen 13
G Warum bei Stream close() aufrufen. Java Basics - Anfänger-Themen 12
G NoClassDefFoundError: javax/xml/stream/XMLStreamException Java Basics - Anfänger-Themen 23
P Stream Java Basics - Anfänger-Themen 4
alexpetri javax.xml.stream.* nicht gefunden Java Basics - Anfänger-Themen 3
M Stream unvollständig Java Basics - Anfänger-Themen 5
Zed Stream in Variable speichern. Java Basics - Anfänger-Themen 3
M Input/Output Stream aus einem String Java Basics - Anfänger-Themen 2
S Schreib Stream Java Basics - Anfänger-Themen 21
M Stream in String umwandeln Java Basics - Anfänger-Themen 5
K datei komplett als Stream oder ähnliches Java Basics - Anfänger-Themen 4
A Serialisierbarer Stream? - File per RMI versenden Java Basics - Anfänger-Themen 4
R Binary Stream in Bild umwandeln Java Basics - Anfänger-Themen 5
C Position im Objekt-Stream Java Basics - Anfänger-Themen 2
M Ausgabe in String anstatt auf Stream Java Basics - Anfänger-Themen 17
C Stream-Konzept Java Basics - Anfänger-Themen 2
A von Socket-Stream lesen Java Basics - Anfänger-Themen 4
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 11
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
R CSV Reader läuft nicht richtig an Java Basics - Anfänger-Themen 8
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
SpigBin Programm läuft nicht weiter... Java Basics - Anfänger-Themen 10
OSchriever Jar-Programm läuft auf Windows aber nicht auf Linux(Raspberri Pi4) Java Basics - Anfänger-Themen 22
V Anfängerfrage: HelloWorld läuft nicht Java Basics - Anfänger-Themen 3
C java.util Timer läuft zu langsam? Java Basics - Anfänger-Themen 1
Zrebna Programm kann aus der Konsole nicht gestartet werden (in der IDE läuft es) Java Basics - Anfänger-Themen 2
A Java-Programm läuft bei installierter JDK aber nicht mit JRE? Java Basics - Anfänger-Themen 5
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
W Warum läuft mein Programm nicht? Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben