W swojej aplikcji wywołuje zapytanie do serwera na strumieniach. W rezultacie zapytania serwer ma wykonać wysłanie pliku. Robi to przez utworzenie klasy, której konstruktor pobiera socket, na którym zostało wykonane poprzednie zapytanie, a wewnątrz siebie definiuje dwa strumienie przez które zaczyna wysyłać bajty:

public Wyslij(Socket s, String fn){
		this.socket = s;
		this.fileName = fn;		
	  try{
	  	in = new BufferedInputStream(new FileInputStream("pliki\\"+ fileName));
  	    out = new BufferedOutputStream(socket.getOutputStream());
	  }catch(IOException e){
	  	System.err.println(e.getMessage());
	  }		
		start();
	}
	public void run(){
		try{
  	  	  Serwer.wyslij_bajty(in,out, 6);
  	    }catch(IOException e){
  	  	 System.err.println("Wyjątek 11111");
  	    }
  	    finally{  	    	  	  	
  	  	try{
  	  	 if(in!=null)
  	  	  in.close();
  	  	 if(out!=null)
  	  	  out.close();	
  	  	}catch(IOException e2){
  	  		System.err.println("Wyjątek przy zamykaniu strumieni");
  	  	}  	  	  
  	  	System.out.println("Strumienie zamknięte");
  	  }
	}

Sytuacja w kliencie jest analogicznie odwrotna(pod odbiór bajtów). Wewnątrz tych konstruktorów pojawia się jednak problem z inicjalizacją strumieni na sockecie. Pojawia się wyjątek socket is close. Nie rozumiem na czym polega tu błąd, przekazany socket wewnątrz tego konstruktora jak najbardziej nie ma wartości null, a mimo tego pojawia się komunikat o zamknęciu. Za pomoc dzięki z góry.