Mam problem z komunikacja klienta z serwerem. Program zatrzymuje sie slowoEN = odczyt.readLine();

//program Serwera:
import java.net.;
import java.io.
;

public class Serwer {
public static void main(String args[]) {

    ServerSocket polaczenie = null;
    Socket gniazdo = null;
    InputStream we = null;
    OutputStream wy = null;
    BufferedReader odczyt = null;
    BufferedReader odczytWe = null;
    DataOutputStream zapis = null;
            String slowoPL="",slowoEN="";

try {
polaczenie=new ServerSocket(8866);
}
catch(IOException e)
{ System.out.println("Nie można utworzyć gniazda serwera."); }

try {
gniazdo=polaczenie.accept();
}
catch(IOException e)
{ System.out.println("Nie można nawiązać połączenia z klientem."); }

try {
we=gniazdo.getInputStream();
}
catch(IOException e)
{ System.out.println("Nie można pobrać strumienia wejściowego."); }

try {
wy=gniazdo.getOutputStream();
}
catch(IOException e)
{ System.out.println("Nie można pobrać strumienia wyjściowego."); }

while(true){
try{
odczyt = new BufferedReader(new InputStreamReader(we));
slowoPL = odczyt.readLine();

 if((slowoPL == null) || slowoPL.equals("koniec"))
 {
 gniazdo.close();
 System.exit(0);
 }
                
 else if( slowoPL!=null )
      {
      System.out.println("Odczytano slowo : " + slowoPL);
      if(slowoPL.equals("okno")){ slowoEN="window"; }
      else if(slowoPL.equals("ekran")){ slowoEN="screen"; }
      else if(slowoPL.equals("oko")){ slowoEN="eye"; }
      else if(slowoPL.equals("ucho")){ slowoEN="ear"; }
      else if(slowoPL.equals("dom")){ slowoEN="house"; }
      else if(slowoPL.equals("noga")){ slowoEN="leg"; }
      else if(slowoPL.equals("cukier")){ slowoEN="sugar"; }
      else { slowoEN="";
      }
                                

zapis = new DataOutputStream(wy);
zapis.writeBytes(slowoEN+ " ");
zapis.flush();
System.out.println("Wyslano slowo : " + slowoEN);

      }
                            

} catch(IOException e){ System.out.println("Problem wejścia - wyjścia."); }
/* koniec pętli while: */
}
}
}

//program Klienta:
import java.net.;
import java.io.
;

public class Klient {
public static void main(String args[]) {

    Socket gniazdo = null;
            InputStream we=null;
            OutputStream wy=null;
    BufferedReader odczyt = null;
    BufferedReader odczytWe = null;
    DataOutputStream zapis = null;
    String slowoPL="",slowoEN="";
    

try {
gniazdo=new Socket("localhost",8866);
}
catch(UnknownHostException e)
{ System.out.println("Nieznana nazwa hosta."); }
catch(IOException e)
{ System.out.println("Nie można utworzyć gniazda klienta."); }

try {
we=gniazdo.getInputStream();
} catch(IOException e)
{ System.out.println("Nie można pobrać strumienia wejściowego."); }

try {
wy=gniazdo.getOutputStream();
} catch(IOException e)
{ System.out.println("Nie można pobrać strumienia wyjściowego."); }

System.out.println("Wpisz polskie slowo, a serwer je przetlumaczy.");

while(true){

try{
odczytWe = new BufferedReader(new InputStreamReader(System.in));
slowoPL = odczytWe.readLine();

if (slowoPL.equals("koniec"))
{
gniazdo.close();
System.exit(0);
}

else if( slowoPL!=null ) {
                          zapis = new DataOutputStream(wy);
                          zapis.writeBytes(slowoPL + " ");
                          zapis.flush();
                          System.out.print("Po polsku " + slowoPL);
        
                          odczyt = new BufferedReader (new InputStreamReader (we));
                          slowoEN=odczyt.readLine();
            
                          if ( slowoEN!=null )
                                             {
                                             System.out.println(" to po angielsku " + slowoEN);
                                             }
                            
                          }
                          
}  catch(IOException e){ System.out.println("Problem wejścia - wyjścia."); }

/* koniec pętli while: */
}
}
}