# Client mit Musikplayer



## bRainLaG (2. Nov 2009)

Hallo ich muss mich leider nochmal an die Community wenden, da ich Fehler erhalte die ich nicht ganz interpretieren kann.

Um die Sache nochmal aufzugreifen ich will eine Verbindung zwischen Server und Client herrstellen, sodass der Server dem Client auf Anfrage eine Musikdatei übergibt. Dieses tut er nun über einen Datoutputstream. Beim Client hängt es momentan scheinbar an der richtigen Auslesung der Daten, bzw hab ich soviel gewerkelt, dass ich das Gefühl habe die Verbindung funzt nicht mehr richtig.

Server:


```
import java.io.*;
import java.net.*;
import javax.sound.sampled.*;

public class Server {
	ServerSocket serverSocket = new ServerSocket(12342);
	
	Server () throws  IOException {
		
		while ( true ) {
			Socket client = serverSocket.accept();
			
			BufferedReader br = new BufferedReader (new InputStreamReader(client.getInputStream()));
			
			DataOutputStream out = new DataOutputStream(client.getOutputStream());
			byte[] buffer = new byte[1024];
			FileInputStream Ausgabe = new FileInputStream(new File("/Users/bRainLaG/Downloads/SoundJava/song1.wav") );
			 int len = 0;
			  while ((len = Ausgabe.read(buffer)) > 0) {
			      out.write(buffer);
			  }
			  out.close();
			  Ausgabe.close();		
		}
	}	          
		          public static void main (String[] args) {
				try {
					Server server = new Server();
				}
					catch (IOException e) {
						System.out.print(e);
				}
		}
}
```

Client 


```
public class Client {

	Client() throws IOException {
		Socket server = new Socket ( "localhost", 12342 );
		
		PrintWriter writer = new PrintWriter(server.getOutputStream());
		writer.write("Will den Stream");
		writer.flush();
		
		File audio = new File("/Users/bRainLaG/Downloads/SoundJava/song1.wav");
		
			try {
			System.out.println("Spiele: " + audio);
			DataInputStream infile = new DataInputStream(server.getInputStream());
			BufferedInputStream bufStream = new BufferedInputStream(infile);
			AudioInputStream audioInputStream = AudioSystem
			.getAudioInputStream(bufStream);
			AudioFormat af = audioInputStream.getFormat();
			
			int size = (int) (af.getFrameSize() * audioInputStream.getFrameLength());
			byte[] buffer = new byte[size];
			DataLine.Info info = new DataLine.Info(Clip.class, af, size);
			audioInputStream.read(buffer, 0, size);
			Clip clip = (Clip) AudioSystem.getLine(info);
			clip.open(af, buffer, 0, size);
			clip.start();
		
		server.close();
		infile.close();
		System.out.println("Datei Empfangen");
			}
			catch (Exception e) {
				e.printStackTrace();
			}
	}
	
				public static void main (String[] args){
					try {
						Client client = new Client();
					}
						catch (IOException e) {
							System.out.print(e);
					}
	}
}
```

Mal meine Fehlerzeilen:

Spiele: /Users/bRainLaG/Downloads/SoundJava/song1.wav
java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:168)
	at java.io.DataInputStream.read(DataInputStream.java:132)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
	at java.io.DataInputStream.readInt(DataInputStream.java:370)
	at com.sun.media.sound.WaveFileReader.getFMT(WaveFileReader.java:244)
	at com.sun.media.sound.WaveFileReader.getAudioInputStream(WaveFileReader.java:160)
	at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1094)
	at Webradio.Client.<init>(Client.java:24)
	at Webradio.Client.main(Client.java:46)


----------



## bRainLaG (2. Nov 2009)

hat keiner ne Idee dazu stehe echt auf dem Schlauch was das angeht


----------



## KOKser (3. Nov 2009)

Servus,

bin zwar kein Profi was das angeht hab aber gerade nach gelesen, das diese Exception dann geworfen wird wenn der Client sein Socket schließt während Ressourcen noch geladen werden.

Ich hoffe es hilft ein bisschen.

lg KOKser


----------

