Pisze aplikacje do przesyłanie dźwięku. Korzystam z java.sound i gniazd.
Dźwięk jest odtwarzany na serwerze jednak nie wiem dlaczego ten sam dźwięk odtwarzany jest wielokrotnie.

Serwer

		ServerSocket ssocket = new ServerSocket (7779);

		Socket s = ssocket.accept();
		
		System.out.println ("nowe polaczenie");
		
		DataInputStream in = new DataInputStream(
				new BufferedInputStream(s.getInputStream()));
		

		AudioFormat af = new AudioFormat (8000,16,1,true,false);
		DataLine.Info sourceInfo = new DataLine.Info (SourceDataLine.class,af);
		SourceDataLine sourceDataLine=null;
		try {
			 sourceDataLine = (SourceDataLine)AudioSystem.getLine(sourceInfo);
			 sourceDataLine.open(af);
		} catch (LineUnavailableException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		sourceDataLine.start();
		
		System.out.println ("odtwarzanie");

		while(true)
		{
			byte[]b = new byte [5504];
			in.read(b);									
			sourceDataLine.write(b, 0, b.length);

		}

Klient

		Socket s = new Socket ("localhost",7779);
		DataOutputStream outToServer = new DataOutputStream(s.getOutputStream());
		AudioFormat af = new AudioFormat (8000,16,1,true,false);
		DataLine.Info targetInfo = new DataLine.Info (TargetDataLine.class,af);

		TargetDataLine targetDataLine = null;
		try {
			targetDataLine = (TargetDataLine)AudioSystem.getLine(targetInfo);
			targetDataLine.open(af);
		} catch (LineUnavailableException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		targetDataLine.start();
		
		System.out.println ("nagrywanie");

	while(true)		
		{
		int av=targetDataLine.available();
		
			if (av>=5504)
			{
			byte[] b = new byte [av];
		targetDataLine.read(b, 0, b.length);
		
		outToServer.write(b);
		
			}
		}