📄 serverlistenthread.java
字号:
/*
* Created on 2005-12-19
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package chatRoom;
//import java.awt.*;
//import java.awt.event.*;
import javax.swing.*;
//import javax.swing.event.*;
import java.io.*;
import java.net.*;
/**
* @author hongyuan
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class ServerListenThread extends Thread{
ServerSocket server;//侦听套接字
JComboBox comboBox; //用户列表框
JTextArea textArea;//聊天信息框
JTextField textField;//提示信息框
UserInfoList userInfoList;//用户信息链表
Node client;
ServerReceiveThread recvThread;//服务器接收线程
public boolean isStop;
public ServerListenThread(
ServerSocket server,
JComboBox comboBox,
JTextArea textArea,
JTextField textField,
UserInfoList userInfoList)
{
this.server=server;
this.comboBox=comboBox;
this.textArea=textArea;
this.textField=textField;
this.userInfoList=userInfoList;
isStop=false;
}
public void run()
{
while(!isStop&&!server.isClosed())
{
try
{
client=new Node();//创建用户信息节点
client.socket=server.accept();//侦听客户端连接请求
client.output=new ObjectOutputStream(client.socket.getOutputStream());//得到套接字输出流
client.output.flush();
client.input=new ObjectInputStream(client.socket.getInputStream());//得到套接字输入流
client.username=(String)client.input.readObject();//读取用户昵称
//显示提示信息
comboBox.addItem(client.username);
userInfoList.add(client);
textArea.append("user"+client.username+"上线"+"\n");
textField.setText("在线用户"+userInfoList.getCount()+"人\n");
//创建服务器接收线程
recvThread=new ServerReceiveThread(comboBox,textArea,textField,userInfoList,client);
//启动线程
recvThread.start();
}catch(Exception e){}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -