Client-Server-Java-GUI: Lese- / Schreibzugriff führt zum Einfrieren des Programms

Ich mache ein Client / Server-Programm in Java (einschließlich einer GUI). Ich habe folgenden Code im Client:

public class SBListener implements ActionListener{
  public void actionPerformed(ActionEvent e){
     try{
        outToServer.writeUTF(usn.getText().trim());
        System.out.println("sent username to server");
        playerExists = inToClient.readBoolean();
        System.out.println("past getting player");
        System.out.println("player exists = " + playerExists);
     }catch(IOException a){
        System.err.println(a);
     }
     if(playerExists == false){
        JButton submitInfo = new JButton("submit info");
        submitInfo.addActionListener(new SBNewInfoListener());
        init.add(new JLabel(""));//dummy element to get the right alignment
        init.add(new JLabel("First Name:"));
        init.add(fn);
        init.add(new JLabel("Last Name:"));
        init.add(ln);
        init.add(submitInfo);
        add(init, BorderLayout.WEST);
        init.setVisible(true);
        init.revalidate();
        init.repaint();
     }

  }

}

Und der folgende Code auf dem Server:

String username = inp.readUTF();
System.out.println(username);
out.writeBoolean(false);

System.out.println("wrote boolean, waiting for fn/ln/un");
fn = inp.readUTF();
System.out.println("got fn");
ln = inp.readUTF();
un = inp.readUTF();

Wenn Sie jedoch auf die Schaltfläche klicken, die SBListener aufruft, reagiert das Programm nicht mehr, wenn der Server auf fn / ln / username wartet. Ich habe eine Reihe von system.out-Anweisungen zum Debuggen hinzugefügt und komme zu der Anweisung, die "Boolean geschrieben und auf fn / ln / un gewartet" lautet.

Grundsätzlich versuche ich, den Bildschirm zu aktualisieren, nachdem der Server einen falschen Wert zurückgibt. Insbesondere möchte ich zwei Textfelder für Vor- und Nachnamen hinzufügen. Ich möchte diese Werte dann an den Server senden.

Kann mir jemand sagen, wie man das behebt? Vielen Dank im Voraus für jede Hilfe!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage