Huśtawka GUI Java zawiesza się
Piszę aplikację GUI klienta / serwera Java przy użyciu gniazd i tutaj jest problem:
Mam przycisk, aby rozpocząć słuchanie określonego portu:
button actionPerformed method
private void listenButtonActionPerformed(java.awt.event.ActionEvent evt) {
int port = Integer.parseInt(portTextfield.getText(), 10);
try {
socket.listen(port);
} catch (IOException ex) {
}
}
Oto metoda socket.listen
public static void listen() throws IOException {
ServerSocket ss = new ServerSocket(port);
while (true)
new socket(ss.accept());
}
Klasa „socket” rozszerza „Thread”
Więc po tym, jak ss.accept () zwróci wartość, tworzy nową instancję gniazda w osobnym wątku.
Po kliknięciu przycisku GUI zawiesza się, ponieważ w metodzie socket.listen znajduje się nieskończona pętla. Jak mogę tego uniknąć?