我正在使用套接字编写Java客户端/服务器GUI应用程序,这是问题所在:
我有一个按钮开始监听指定的端口:
按钮操作执行的方法
private void listenButtonActionPerformed(java.awt.event.ActionEvent evt) {
int port = Integer.parseInt(portTextfield.getText(), 10);
try {
socket.listen(port);
} catch (IOException ex) {
}
}
这是socket.listen方法
public static void listen() throws IOException {
ServerSocket ss = new ServerSocket(port);
while (true)
new socket(ss.accept());
}
“套接字”类扩展了“线程”,
因此在ss.accept()返回值之后,它将在单独的线程中创建新的套接字实例。
单击按钮后,GUI冻结,因为在socket.listen方法内部存在无限循环。我该如何避免呢?
慕森王
相关分类