A GUI do swing Java congela
Eu estou escrevendo um aplicativo de GUI cliente / servidor Java usando soquetes e aqui está o problema:
Eu tenho um botão para começar a ouvir uma porta específica:
botão actionPerformed method
private void listenButtonActionPerformed(java.awt.event.ActionEvent evt) {
int port = Integer.parseInt(portTextfield.getText(), 10);
try {
socket.listen(port);
} catch (IOException ex) {
}
}
Aqui está o método socket.listen
public static void listen() throws IOException {
ServerSocket ss = new ServerSocket(port);
while (true)
new socket(ss.accept());
}
A classe "socket" estende "Thread"
Então, depois de ss.accept () retornar um valor, ele cria uma nova instância de soquete em um thread separado.
Depois de clicar no botão, a GUI congela, porque dentro do método socket.listen existe um loop infinito. Como posso evitar isso?