在写一个基于TCP的多线程的java图形化聊天室,在写服务器端的时候,我在服务器端
的面板上加了一个启动服务器的按钮,但是在我点击按钮之后服务器端的页面直接卡死了
求助大神帮忙解决
以下是按钮点击事件中的代码:
ServerSocket ss = new ServerSocket(8080);
System.out.println("正在监听8080端口...");
while(true){
Socket s = ss.accept();
System.out.println("一个客户端上线了");
new Thread(new ServerThread(s)).start();
}
new ServerThread代码
public class ServerThread extends Thread{
private ServerSocket serverSocket;
private boolean isRunning;
private JTextArea jTextArea;
//构造方法
public ServerThread(ServerSocket serverSocket,JTextArea jTextArea) {
this.serverSocket = serverSocket;
this.jTextArea = jTextArea;
}
//接受消息
private void receive(){
jTextArea.append("调用receive方法");
/*try {
String msg = dataInputStream.readUTF();
jTextArea.append(socket.getInetAddress()+" : "+msg+"\r\n");
System.out.println(msg);
} catch (IOException e) {
release();
}*/
}
//发送消息
private void send(String msg){
jTextArea.append("调用send方法");
/*try {
dataOutputStream.writeUTF(msg);
dataOutputStream.flush();
} catch (IOException e) {
release();
}*/
}
//释放资源
private void release(){
this.isRunning = false;
/*CloseUtils.close(dataInputStream,dataOutputStream,socket);*/
}
public void run() {
while(isRunning){
receive();
}
}
}